洛谷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...