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 #include2using
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為正整數 我...