题解 | 求int型正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <iostream> using namespace std; int lowbit(int x) { return x & (-x); } int main() { int n; cin >> n; int ans = 0; while(n != 0) { ans ++; n -= lowbit(n); } cout << ans << endl; return 0; } // 64 位输出请用 printf("%lld")
这里用了一个lowbit运算来优化代码,不必一位一位的去判断。补充知识:lowbit运算是返回最低位的那个1及其后面的0所组成的十进制的值。#牛客春招刷题训练营#
#牛客春招刷题训练营#