这种题目,我还是不能理解,我的第一感觉应该是这样的:
public class Solution {
public int HammingWeight(uint n) {
char[] a = n.ToString().ToCharArray();
var c = a.Count(p => p.Equals('1'));
return c;
}
}
看看其他人的答案:
C#代码,思路就是给这个数一直除2,余数有一个1就代表有一个1
public class Solution {
public int HammingWeight(uint n) {
int sum = 0;
while (n > 0)
{
if (n % 2 == 1)
{
sum++;
}
n /= 2;
}
return sum;
}
}
~是反运算符
public class Solution {
public int HammingWeight(uint n) {
int count = 0;
while (n != 0)
{
if ((n & (~n + 1)) == 1)
count++;
n = n >> 1;
}
return count;
}
}
about Binary system question should be put down first.