PJ953.c

来源:互联网 发布:php7 mysql教程 编辑:程序博客网 时间:2024/06/14 15:40
 
/*编码问题:若将一个正整数化为二进制数,在此二进制数中,我们将数字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两类数的个数。*/#include <stdio.h>#include <stdlib.h>int main(){int i,n,r;int a = 0, b = 0;int s;for( i = 1 ; i <= 1000 ; ++ i ){//printf("%d\n",i);n = i;s = 0;while(n!=0){r = n % 2;if( r == 1 )++s;else--s;n = n/2;}if(s>0)++a;else++b;}printf("A类=%d, B类=%d\n", a, b);system("pause");return 0;}