任务描述
若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。 例如: (13)10=(1101)2
,其中1的个数为3,0的个数为1,则称此数为A类数; (10)10=(1010)2
,其中1的个数为2,0的个数也为2,称此数为B类数; (24)10=(11000)2
,其中1的个数为2,0的个数为3,则称此数为B类数; 程序要求:求出k1~k2之中(包括在1与1000区间内),全部A、B两类数的个数。
输入格式:
一行中两个整数,空格分隔,表示k1和k2,保证k1<k2。
输出格式:
一行,包含两个整数,分别是A类数和B类数的个数,中间用单个空格隔开。
输入样例:
1 1000
输出样例:
538 462
代码如下:
#include<stdio.h>
void f(int n,int m);
int g(int i);
int main ()
{ int n,m;
scanf("%d %d",&n,&m);//输入取值范围
f(n,m);
return 0;
}
void f(int n,int m)//从范围内找出AB类个数
{