输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
数据范围:保证在 32 位整型数字范围内
#include <stdio.h> int main() { int n; scanf("%d" , &n); int num = 0; int z; do{ z = n % 2; if(z == 1){ num++; } n = n / 2; }while(n != 0); printf("%d" , num); return 0; }
#include <stdio.h> int main() { int num; scanf("%d", &num); int c = 0; do{ c += num&1; num = num >> 1; }while(num != 0); printf("%d", c); return 0; }
#include<stdio.h> int main() { int ret,sum,i,j; int su[1000]; scanf("%d",&ret); i=0; while(ret>0) { su[i]=ret%2; ret=ret/2; i++; } sum=0; for(j=0;j<i;j++) { sum+=su[j]; } printf("%d",sum); return 0; } //变量起名字太难了
#include <stdio.h> #include <string.h> int main() { int N; scanf("%d", &N); int n = 1; int flag = 0; while (n) { n = N / 2; if ((N-n*2) == 1) { flag++; } N = n; } printf("%d", flag); return 0; }