/*
【基础】:进制转换问题(easy)
{
int i,j,a=0,b=0,mod,ta=0,tb=0;
for(i=1 ; i<= 1000 ; i++)
{
j = i ;
a = 0 ;
b = 0 ;
while(j != 0)
{
mod = j%2 ;
j /= 2 ;
if( mod == 1)
a ++ ;
else
b ++ ;
}
if ( a > b )
ta ++ ;
else
tb ++ ;
}
printf("%d %d ",ta,tb);
system("pause");
return 0 ;
}
【基础】:进制转换问题(easy)
Time Limit:1000MS Memory Limit:65536K
Total Submit:271 Accepted:153
Description
若将一个正整数n化为二进制,在此二进制数中,我们将数字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类数。
程序要求:求出1-1000之中(包括1与1000),全部A、B两类数的个数。
Input
1000
Output
(a.out)A、B两类数的个数
Sample Input
Sample Output
Source
*/#include
<stdio.h> int main(void){
int i,j,a=0,b=0,mod,ta=0,tb=0;
for(i=1 ; i<= 1000 ; i++)
{
j = i ;
a = 0 ;
b = 0 ;
while(j != 0)
{
mod = j%2 ;
j /= 2 ;
if( mod == 1)
a ++ ;
else
b ++ ;
}
if ( a > b )
ta ++ ;
else
tb ++ ;
}
printf("%d %d ",ta,tb);
system("pause");
return 0 ;
}