进制转换问题
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 ;
}
【基础】:进制转换问题(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 ;
}
相关文章推荐
- 进制转换问题
- 神奇的位运算——进制转换问题(16转8)
- 进制转换问题
- JS中字符问题(二进制/十进制/十六进制之间的转换),颜色进制转换
- 进制转换问题
- 【Loadrunner】解决进制转换问题
- 1022: 进制转换问题
- 进制转换(字符串问题)
- 进制转换问题(c++)
- 关于大数的进制转换问题
- LeetCode Excel Sheet Column Number(进制转换问题)
- 进制转换问题
- java-自定义的进制转换-可以处理缩短uuid长度的问题
- hdu1877-进制转换问题 vector容器
- 蓝桥杯学习记录:Excel地址转换问题(进制转换)
- PHP 进制转换 dechex 无法正确计大数字问题
- 进制转换问题
- 第七天学习笔记 ---计算机中进制转换问题
- 利用递归解决进制转换问题
- 基本数据类型的进制转换问题