36:二进制分类

2018-06-17 23:09:18来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

36:二进制分类

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
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 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:读书笔记 effective c++ Item 31 把文件之间的编译依赖降到最低

下一篇:bzoj4771 -- dfs序+倍增+主席树