计算好数 若将一个正整数化为二进制数,在此二进制数中,我们将数字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
正确答案:参考程序(C++):计算好数。1~N中二进制1个数多于0个数的数。逐数转二进制统计。样例1~10中好数5个(1,3,5,6,7,9,10?实际5)。核心:二进制1/0计数。
试卷来源:202106 青少年等级考试C/C++真题二级