题目如下:
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数
(也被称为汉明重量).)。
示例 1:
输入:n = 11 (控制台输入 00000000000000000000000000001011)
输出:3 解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。
示例 2:
输入:n = 128 (控制台输入 00000000000000000000000010000000)
输出:1 解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。
代码:
#include <stdio.h>
int main() {
int n;
printf("请输入一个数字:");//输入
scanf("%d",&n);
printf("转换前:%d\n",n);
int arr[100];
int i,t;
for (i = 0; n != 0; i++) {//转换为二进制数
arr[i] = n % 2;
n = n / 2;
}
printf("转换后:");
for (t = i - 1; t>= 0; t--) {//输出结果
printf("%d", arr[t]);
}
printf("\n");
int j,x=0;
for (j = 0; j < i; j++) {//检测有几个‘1’
if (arr[j] == 1) {
x++;
}
}
printf("输出:%d\n", x);//输出结果
return 0;
}


该代码实现了一个函数,输入一个无符号整数的二进制形式,计算并返回其二进制串中1的个数,也就是汉明重量。通过将整数转换为二进制数组,然后遍历数组统计1的数量。
,返回其二进制表达式中数字位数为 ‘1‘ 的个数&spm=1001.2101.3001.5002&articleId=130850845&d=1&t=3&u=fec22abee9b34cb19013974fe69951b8)
491

被折叠的 条评论
为什么被折叠?



