导航菜单
首页 >  c语言2级真题  > 电子学会 C语言 2级 61 、计算好数(二进制分类)(2021年6月真题)

电子学会 C语言 2级 61 、计算好数(二进制分类)(2021年6月真题)

若将一个正整数化为二进制数,在此二进制数中,我们将数字 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)中的好数个数。

输入

一个整数,题目中的 N(N ≤ 1000)

输出

一个整数,表示 1~N 之中(包括 1 与 N)中的好数个数

样例输入

10

样例输出

5

1778:好数字

信息学奥赛一本通(C++版)在线评测系统

#includeusing namespace std;int main() {int a,i=1,L=0,y=0,sum=0,tmp;cin>>a; for(int j=1;jL){sum++;}}cout

相关推荐: