AB二進位制

2022-04-30 03:18:08 字數 1047 閱讀 6697

description

若將乙個正整數化為二進位制數,在此二進位制數中,我們將數字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兩類數的個數。1和1000是十進位制數!,所以a+b=1000(十進位制)

input

無輸入output

在一行中輸出兩個整數a和b,a表示a類數的個數,b表示b類數的個數,ab之間由乙個空格分隔,除此之外不要再輸出其他多餘的東西。

sample input 1

無sample output 1

見上述提示

思路:暴力列舉,

(1)用乙個for迴圈從1到1000列舉,在for迴圈中將每個數取出二進位制的每位,1000的二進位制就9位數,時間複雜度也就差不多9000多,不會超時

(2)對於每個數的二進位制位有0則num0++(num0是下面**中定義的),有1則num1++;

注意每次迴圈都要將num0 和num1重新置為0 ,統計每個數的0和1;

(3)統計flaga和flagb

**如下:

1 #include2

using

namespace

std;34

inttmp;

5int

b , c;

6int

num0 ,num1;

7int flaga = 0, flagb = 0;8

intmain()921

if(num0>=num1) flagb ++;

22else flaga++;23}

24 cout<"

"<25return0;

26 }

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

BZOJ 3107 二進位制a b

輸入三個整數 a,b,c 把它們寫成無前導 0 的二進位制整數。比如 a 7,b 6,c 9 寫成二進位制為 a 111,b 110,c 1001 接下來以位數最多的為基準,其他整數在前面新增前導 0 使得 a,b,c 擁有相同的位數。比如在剛才的例子中,新增完前導 0 後為 a 0111,b 01...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...