二次折躍門
題目描述
若將乙個正整數化為二進位制數,在此二進位制數中,我們將數字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之間由乙個空格分隔,除此之外不要再輸出其他多餘的東西。 提示
樣例輸入
樣例輸出
2023年noip普及組
此題還是屬於略坑的題,1~1000誰會去暴力列舉?(這方法我試過,超時)
算了吧,我只能這樣寫了。
究竟如何請看**。
#includeusing namespace std;
int suma,sumb,onesum,zerosum;
void solve()
for(int i=j-1;i>=0;i--)
if(a[i]==0)
if(onesum>zerosum)
else
}}//模板沒看懂的話,請看下面我另附的十進位制轉二進位制模板
int main()
繼續往下看有彩蛋哦!
十進位制轉二進位制的模板
#includeusing namespace std;
int main()
for(i=j-1;i>=0;i--)
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...