题解 | #查找输入整数二进制中1的个数#
查找输入整数二进制中1的个数
https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main() {
unsigned long n[10], num;
int i, k , j, l = 0;
while (scanf("%lu\n", &num) == 1) {
n[l] = num;
l++;
}
l = l - 1;
for (i = 0; i <= l; i++)
{
for(k=0;n[i]!=0;n[i]=n[i]/2)
{
if(n[i]%2==1)
{
k++;
}
else continue;
}
printf("%d\n",k);
}
}
这里先使用scanf函数读取输入,并通过条件判断输入是否为0;并赋值给数组存下来,之后利用两层循环利用除二取余计算每个数二进制1的个数。
#位运算##除二取余#