冪次方 洛谷 1010

2021-07-26 11:11:24 字數 1240 閱讀 7716

題目描述

任何乙個正整數都可以用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 ...