藍橋杯訓練題目 (二進位制數數)

2021-10-07 11:37:19 字數 819 閱讀 1888

順便說明一下真正的取餘過程。

十進位制轉二進位制:用十進位制數除以二進位制數,得到的每一位餘數就是二進位制數的構成,但是要倒序輸出才是正常的二進位制。

過程如下:

比如整數10

10%2 = 0; 10/2= 5;

5%2 = 1; 5/2 = 2;

2%2 = 0;

2/2 =1;注意上一步中因為餘數已經為0了,同時下一步中 1/2 = 0;所以除法到這裡結束。

前面都是取餘數,最後一位是商,如果商為0則為0,商為1則為1;

然後我們反過來輸出它,從下往上就是:1010;

比如整數7

7%2 = 1; 7/2 = 3;

3%2 = 1;

3/2 = 1;除法到這結束,因為下一步中 1/2=0了

1%2 = 0;

同樣反過來輸出,就是:0111;也可以直接111,把0省略

不管是轉二進位制還是轉八進位制或者是轉十六進製制,只要是誰轉誰,那就用誰除以誰,取餘數,直到為0,然後反向輸出即可!

下面是我注釋後的**。

#include

#include

using

namespace std;

intnumber

(int n)

int count =0;

for(i=

0;i)//二進位制中1的個數

return count;

}int

main()

cout

}

藍橋杯 試題 演算法訓練 二進位制數數

資源限制 時間限制 1.0s記憶體限制 256.0mb 問題描述 給定l,r。統計 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。如5的二進位制為101,包含2個 1 輸入格式 第一行包含2個數l,r 輸出格式 乙個數s,表示 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。樣...

藍橋杯 二進位制數數(位運算)

問題描述 給定l,r。統計 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。如5的二進位制為101,包含2個 1 輸入格式 第一行包含2個數l,r 輸出格式 乙個數s,表示 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。樣例輸入 2 3樣例輸出 3 bit intcnt one...

藍橋杯演算法訓練 二進位制數

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定l,r。統計 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。如5的二進位制為101,包含2個 1 輸入格式 第一行包含2個數l,r 輸出格式 乙個數s,表示 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。...