總時間限制: 1000ms 記憶體限制: 65536kb
描述任何乙個正整數都可以用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(0)
又如:1315=210+28+25+2+1
所以1315最後可表示為:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
輸入乙個正整數n(n≤20000)。
輸出一行,符合約定的n的0,2表示(在表示中不能有空格)。
樣例輸入
樣例輸出2(2(2)+2+2(0))+2(2+2(0))+2(0)從題目上可以看出,這道題應該採用遞迴的思想,並且應該是採用二進位制來進行處理,詳細**如下:
#include
#include
using
namespace std;
void
two(
int a)
;//呼叫的遞迴函式
intmain()
void
two(
int a)
else
if(a ==1)
else
if(a ==2)
for(
int i =
15; i >=
0; i--
)//由於題目中說n<20000,所以最多不會超過2的15次方,採用位與運算得出二進位制為1的位數
for(
int j =
0; j < b.
size()
; j++)if
(j != b.
size()
-1)//當沒有到b中最後一位時需要加個'+'
cout <<
"+";
}}
open judge 2 尋找中位數
2 尋找中位數檢視提交統計提問總時間限制 1000ms 記憶體限制 65536kb描述在n 1 n 10,000且n為奇數 個數中,找到中位數。輸入第1行 n 第2至n 1行 每行是乙個整數輸出第一行 中位數樣例輸入524 135樣例輸出3 include using namespace std i...
2的冪次方
2的冪次方 noip1998 問題描述 任何乙個正整數都可以用2的冪次方表示。例如 137 2 7 2 3 2 0 同時約定方次用括號來表示,即ab可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 進一步 7 2 2 2 2 0 21用2表示 3 2 2 0 所以最後137可表示為 ...
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 ...