OJ 1379 二進位制數問題

2021-10-08 09:02:26 字數 707 閱讀 6589

描述

若將乙個正整數化為二進位制數,在此二進位制數中,我們將數字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,a表示a類數的個數,b表示b類數的個數,ab之間由乙個空格分隔,除此之外不要再輸出其他多餘的東西。

這裡主要是要判斷在二進位制之內1和0的個數,但是又只能從從左到右第乙個遇到1開始計算(除非是0),所以依然是要使用位運算首先是使用迴圈計算1到1000,然後使用對於每乙個數使用位運算的「&」判斷最右的哪一位是否為1並相應的計數,判斷之後右移,直到右移到這個數為0然後判斷1和0那個更多。

#include using namespace std;

int main()

if(a>b)

cona++;

else

conb++;

}cout

}

二進位制問題

題目 題解 純二進位制題目。因為所有的水都是由兩份相同的水合併而成的,因此每瓶水的體積一定是2 i,i in n 2 i i n 公升。最後保留k個瓶子,那麼最後總的公升數的二進位制表示中,1的個數一定 k。本題實質上是用不超過k個1和無數個0生成乙個最接近且大於n的二進位制數 方法一 includ...

二進位制 二進位制起源

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

二進位制數反轉

1 使用了歸併排序的思路 最快 但是時間複雜度比歸併排序要小,每行 都相當於完成了一次歸併 include unsigned revbit unsigned x void main 2 把乙個32位整數按位反轉,即第1位轉到第32位,第2位轉到第31位,依次下去。一牛人寫的演算法如下 unsigne...