题目描述
zy刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?
输入
一个整数M(0=<M<=10000)
输出
每组测试输出占一行,输出M的二进制表示中1的个数
样例输入
4
样例输出
1
问题分析
将十进制数转换为二进制数的过程中可以获得二进制数的每一位,在此过程中进行计数就能得到结果。
#include<stdio.h>
int main(){
int num;
scanf("%d", &num);
int count = 0;
while(num!=0){
if(num%2==1){
count+=1;
}
num/=2;
}
printf("%d", count);
return 0;
}