刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
简答题
5.计算好数
若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为好数。
例如:
(13)10 = (1101)2,其中1的个数为3,0的个数为1,则此数是好数;
(10)10 = (1010)2,其中1的个数为2,0的个数也为2,则此数不是好数;
(24)10 = (11000)2,其中1的个数为2,0的个数为3,则此数不是好数;
对于给定的N,写程序求出1~N之中(包括1与N)中的好数个数。
时间限制:1000
内存限制:65536
输入
一个整数,题目中的N(N ≤ 1000)
输出
一个整数,表示1~N之中(包括1与N)中的好数个数
样例输入
```
10
```
样例输出
```
5
```
若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为好数。
例如:
(13)10 = (1101)2,其中1的个数为3,0的个数为1,则此数是好数;
(10)10 = (1010)2,其中1的个数为2,0的个数也为2,则此数不是好数;
(24)10 = (11000)2,其中1的个数为2,0的个数为3,则此数不是好数;
对于给定的N,写程序求出1~N之中(包括1与N)中的好数个数。
时间限制:1000
内存限制:65536
输入
一个整数,题目中的N(N ≤ 1000)
输出
一个整数,表示1~N之中(包括1与N)中的好数个数
样例输入
```
10
```
样例输出
```
5
```
使用微信搜索喵呜刷题,轻松应对考试!
答案:
解析:
本题要求计算1到N之间(包括1和N)的好数个数。好数是指一个正整数在二进制表示中,1的个数多于0的个数。
为了解决这个问题,我们可以按照以下步骤编写程序:
1. 读取输入N,表示要计算好数的范围。
2. 初始化一个计数器,用于统计好数的个数。
3. 遍历1到N之间的所有整数。
4. 对于每个整数,将其转换为二进制形式。
5. 计算二进制数中1的个数和0的个数。
6. 检查是否满足好数的条件(即1的个数多于0的个数)。
7. 如果满足条件,则将计数器加1。
8. 重复步骤3到7,直到遍历完所有整数。
9. 输出计数器的值,即为1到N之间的好数个数。
需要注意的是,由于N的最大值为1000,我们可以使用整数类型来存储和计算。另外,为了避免重复计算,我们可以使用一个布尔数组来记录每个数是否已经被检查过。但是,由于N的值较小,这种方法在这里并不是必要的。
最后,根据题目要求,我们需要输出好数的个数。因此,在程序执行完毕后,我们只需要输出计数器的值即可。
创作类型:
原创
本文链接:5.计算好数若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



