华为-查找输入整数二进制中1的个数
题目链接
#include using namespace std;int main(){ int n; while (cin >> n){ int ans = 0; long bisize[33]; for(int i = 0; i < 33; i++){ bisize[i] = pow(2, i); } int l = 32; while(n > 0){ if(n >= bisize[l]){ n -= bisize[l]; ans++; } l--; if(l < 0){ break; } } cout << ans << endl; } return 0;}
做别的题想到上面算法太sb了。。
#include #include using namespace std;int main(){ int n; while (cin >> n){ int ans = 0; while (n > 0) { ans += n % 2; n /= 2; } cout << ans << endl; } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~