这题十分简单,只需要逐位判断就好了。
在此我提供一种最简做法。
在GCC编译器里有一些内置函数,其中有一个能帮我们解决问题。
int __builtin_popcount(unsigned int x)
这个函数会返回$x$的二进制表示下有多少个$1$。
那么问题也就迎刃而解了。
代码
class Solution {
public:
int NumberOf1(int n) {
return __builtin_popcount(n);
}
};