当前位置:   article > 正文

找数字 (100%用例)C卷 (C语言)_和小船今天又玩起来了数字游戏,小船给小扇一个正整数n(1<=n<=1e9), 小扇需要找到

和小船今天又玩起来了数字游戏,小船给小扇一个正整数n(1<=n<=1e9), 小扇需要找到

小扇和小船今天又玩起来了数字游戏,小船给小扇一个正整数n(1<=n<=1e9),小扇需要找到一个比n大的数字m,使得m和n对应的二进制中1的个数要相同(如4对应二进制1008对应二进制10001的个数都为1), 现在求m的最小值

输入描述

输入:第一行输入一个正整数n(1<=n<=1e9)。

输出描述

输出:输出一个下整数m。

示例1

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

复制

2

输出

复制

4

说明

2的二进制10.4的二进制位100,1的个数相同,且4是满足条件的最小数

示例2

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

复制

7

输出

复制

11

说明

7的二进制111,11的二进制位1011,1的个数相同,且11是满足条件的最小数

  1. #include <stdio.h>
  2. // 这题就是暴力破解就好了
  3. // 枚举数字中的bit1的出现次数,进行比对即可
  4. // 定义一个函数统计bit1中出现的1的个数
  5. int oneCnt(int val){
  6. int res = 0;
  7. while(val){
  8. res += val % 2;
  9. val >>= 1;
  10. }
  11. return res;
  12. }
  13. int main(){
  14. int n = 0;
  15. int m = (int)1e9;
  16. scanf("%d", &n);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/206032
推荐阅读
相关标签
  

闽ICP备14008679号