題目描述
任何乙個正整數都可以用2的冪次方表示。例如
137=2^7+2^3+2^0
同時約定方次用括號來表示,即a^b 可表示為a(b)。
由此可知,137可表示為:
2(7)+2(3)+2(0)
進一步:7= 2^2+2+2^0 (2^1用2表示)
3=2+2^0
所以最後137可表示為:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如: 1315=2^10 +2^8 +2^5 +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表示(在表示中不能有空格)
輸入輸出樣例
輸入樣例#1:
1315
輸出樣例#1:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
題解:這道題用遞迴的方法,先求k為2的多少次方,然後因為該題只能輸出2,0和括號,所以如果m大於等於3,則需要遞迴,小於3則直接輸出,如果有餘數,則將餘數繼續遞迴。
var n:longint;
procedure
mi(k:longint);
var s,m:longint;
begin
m:=0;
s:=1;
while s*2
<=k do
begin
s:=s*2;
inc(m);
end;
case m of
0:write('2(0)');
1:write(2);
2:write('2(2)');
else
begin
write('2(');mi(m);write(')');end;
end;
if k-s<>0
then
begin
write('+');
mi(k-s);
end;
end;
begin
readln(n);
mi(n);
writeln;
end.
洛谷 P1010 冪次方
前言 只為轉c 刷水題.題目描述 任何乙個正整數都可以用2的冪次方表示。例如 137 2 7 2 3 2 0 同時約定方次用括號來表示,即a b 可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 進一步 7 2 2 2 2 0 2 1用2表示 3 2 2 0 所以最後137可表示為 ...
洛谷 P1010 冪次方
前言 只為轉c 刷水題.題目描述 任何乙個正整數都可以用2的冪次方表示。例如 137 2 7 2 3 2 0 同時約定方次用括號來表示,即a b 可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 進一步 7 2 2 2 2 0 2 1用2表示 3 2 2 0 所以最後137可表示為 ...
洛谷 P1010 冪次方
任何乙個正整數都可以用 22 的冪次方表示。例如 137 2 7 2 3 2 0137 27 23 20。同時約定方次用括號來表示,即 a bab 可表示為 a b a b 由此可知,137137 可表示為 2 7 2 3 2 0 2 7 2 3 2 0 進一步 7 2 2 2 2 07 22 2 ...