バイナリカテゴリ
954 ワード
【タイトル説明】
正の整数を2進数にすると、この2進数では、数字1の個数が0より多い個数の2進数を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の2種類の数の個数を求める.
【入力】
(なし)
【出力】
Aクラス数とBクラス数の2つの整数を含む行で、中間は単一のスペースで区切られています.
【入力サンプル】
(なし)
【出力サンプル】
(なし)
【ソースプログラム】
正の整数を2進数にすると、この2進数では、数字1の個数が0より多い個数の2進数をAクラス数と呼び、そうでなければBクラス数と呼ぶ.
例:
プログラム要求:1~1000のうち(1と1000を含む)、すべてのA、Bの2種類の数の個数を求める.
【入力】
(なし)
【出力】
Aクラス数とBクラス数の2つの整数を含む行で、中間は単一のスペースで区切られています.
【入力サンプル】
(なし)
【出力サンプル】
(なし)
【ソースプログラム】
#include
using namespace std;
bool judge(int x);
int main()
{
int a=0,b=0;
int i;
for(i=1; i<=1000; i++) // 1-1000
if(judge(i))// i A
a++;
else// i B
b++;
cout<0)// つの を にして、Aクラス かBクラス かを する
{
if(x%2)
a++;//a 1の
else
b++;//b 0の
x/=2;
}
return a>b;//
}