【刷题记录】
此系列文章仅是对个人学习的记录,如有错误望大家谅解给予指正。
第31次刷题
一、牛客网刷题
1.题目描述:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
2.代码:
class Solution {
public:
int NumberOf1(int n) {
int count = 0;//赋初值
while(n) {
++count;
n = n & (n - 1);//n右移一位与上n
}
return count;//返回数值
}
};
3.问题分析:将数个数赋初值为0,循环数n,n与上(n-1).
4.备注:做题时先要确定解题方法,理解题意。进制转换。