总时间限制: 1000ms 内存限制: 65536kB描述
若将一个正整数化为二进制数,在此二进制数中,我们将数字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两类数的个数。
输入无。输出一行,包含两个整数,分别是A类数和B类数的个数,中间用单个空格隔开。样例输入
(无)
样例输出
(不提供)
来源NOIP1995复赛 普及组 第三题
1 #include<iostream>
2 using namespace std;
3 int alei;
4 int blei;
5 int main()
6 {
7 for(int i=1;i<=1000;i++)
8 {
9 int yi=0;
10 int ling=0;
11 int now=i;//记录i的值
12 while(now!=0)
13 {
14 int r=now%2;
15 if(r==1)yi++;
16 else if(r==0)ling++;
17 now=now/2;
18 }
19 if(yi>ling)alei++;
20 else blei++;
21 }
22 cout<<alei<<" "<<blei;
23 return 0;
24 }
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有