您的位置:首页 > 其它

进制转换问题

2007-10-19 09:26 288 查看
/*
【基础】:进制转换问题(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 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: