下面是“非常经典的C语言趣味题目”的完整攻略。
1.题目描述
题目描述:输入一个正整数n,按十进制输出n的二进制表示,并输出其中1的个数。
2.思路分析
1.输入一个正整数n;
2.将n转换成二进制表示。对于十进制数,可以不断对2取余数和商,然后将余数倒序排列起来就可以得到二进制表示,具体可以使用循环实现;
3.遍历二进制表示,数出其中1的个数。
3.代码实现
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
int binary[64] = {0}; // 用数组存储二进制位
int count = 0; // 记录1的个数
int i = 0;
while (n > 0) {
binary[i] = n % 2; // 取余存储
n /= 2; // 取商,即下一位二进制数
i++;
}
printf("该正整数的二进制表示为:");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
if (binary[j] == 1) {
count++;
}
}
printf("\n其中1的个数为:%d\n", count);
return 0;
}
4.示例说明
示例1
输入一个正整数:9
该正整数的二进制表示为:1001
其中1的个数为:2
示例2
输入一个正整数:33
该正整数的二进制表示为:100001
其中1的个数为:2
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:非常经典的C语言趣味题目 - Python技术站