二进制数中1的个数相同
2016-04-20 17:20
267 查看
#include<iostream> using namespace std; int main() { int n, a, b, d, m; do{ cin >> n; } while (n <= 0); a = n; b = 0; while (a) { b += a & 1; a >>= 1; } m = n; do { d = 0; m++; a = m; while (a) { d += a & 1; a >>= 1; } } while (d != b); cout << m << endl; return 0; }
给定一个大于0的整数n,把它转换为二进制,则其二进制数中至少有1位是“1”。编写一个程序,找出比给定的整数n大的最小整数m。要求m 和 n 两个整数转换成二进制数后,二进制数中包含的1的个数相同
相关文章推荐
- iOS消息推送
- [置顶] 算法导论之P、NP、NPC问题
- sql查询表中为 null 的字段
- 【JAVA学习】类的继承
- win下编译android老出现问题,cocos-ext.h: No such file or directory
- Android事件分发机制(一)
- Android GridView属性集合
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- iOS开发中实现UITableView的Cell左划删除等自定义功能
- JTAG、SBW、BSL 三种接口的区别
- 时间复杂度计算(二)
- swift笔记(二) —— 运算符
- String(三)
- Linux内核分析期中总结
- JVM GC垃圾回收器详解
- 正式赛-ZZULIOJ-1878-蛤玮准备礼物
- RxJava介绍和使用
- $scope.$evalAsync() 和 $timeout()
- BZOJ2597 [Wc2007]剪刀石头布(最小费用最大流)
- 团队开发之个人博客一