OR158. bitcount
描述
输入描述
long 类型的数值输出描述
该数值二进制表示中1的个数示例1
输入:
3
输出:
2
说明:
3的二进制表示: 11, 所以1个数为2示例2
输入:
65
输出:
2
说明:
65的二进制为:1000001,所以1的个数为:2C 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2021-09-18
#include <stdio.h> int main() { long int n; while(scanf("%ld",&n)!=EOF) { int sum=0; while(n!=0) { n=n&(n-1); sum++; } printf("%d\n",sum); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 348KB, 提交时间: 2021-04-16
#include <stdio.h> int main(void) { long num; for( ; scanf("%ld", &num) != EOF; ){ int cnt = 0; long weight = 1; while(num) { if(num & weight){ cnt++; num ^= weight; } weight <<= 1; } printf("%d\n", cnt); } return 0; }