bitset 遞迴 冪次方

2021-08-08 02:17:49 字數 708 閱讀 9600

洛谷p1010冪次方

搜尋x的步驟:

判斷當前數x是否小於等於2

(1)如果小於等於2 則當前數x無需再分解

判斷x是否為1 

1)如果不是 輸出x 

2)如果是1 不輸出

返回(2)如果x大於2 則當前數x不能直接輸出 而需要繼續分解

用bitset對當前數x進行二進位制分解為p

因為題目範圍n<=20000 所以二進位制最多有15位

for由大到小迴圈 判斷位i的值p[i]是否為1

1)如果為1 

判斷當前層是否已經有數輸出

( w=1 -> 已經有數輸出

w=0 -> 目前還沒有數輸出)

①如果有(w=1) 輸出「+」

②否則(w=0) w=1 

搜尋當前位i

2)否則繼續迴圈

#include #include using namespace std;

int n;

inline void search(int x);

int main()

inline void search(int x)

bitset<15> p; bool w=0;

p=x;

for(int i=15;i>=0;--i)

else if(p[i]==1&&w==1)

}}

2的冪次方(遞迴)

任何乙個正整數都可以用22的冪次方表示。例如137 27 23 2 0 同時約定方次用括號來表示,即a b 可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 2 7 2 3 2 0 進一步 7 22 2 207 22 2 20 2 1用2表示 並且3 2 2 0 所以最後137可表示...

2的冪次方 遞迴

description 任何乙個正整數都可以用2的冪次方表示。例如137 27 23 2 0,由此可知,137可表示為 2 7 2 3 2 0 而7又可以表示為 2 2 2 2 0 3可以表示為 2 2 0 因此137最終表示為 2 2 2 2 2 0 2 2 2 0 2 0 input 乙個正整數...

遞迴 2的冪次方表示

問題描述 任何乙個正整數都可以用2的冪次方表示。例如 137 27 23 20 同時約定方次用括號來表示,即ab可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 進一步 7 22 2 20 21用2表示 3 2 20 所以最後137可表示為 2 2 2 2 2 0 2 2 2 0 2...