2的冪次方表示

2021-07-26 21:32:42 字數 1159 閱讀 1398

題目:

任何乙個正整數都可以用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表示(在表示中不能有空格)。

樣例輸入

137

樣例輸出

2(2(2)+2+2(0))+2(2+2(0))+2(0)

i)沒有通過測試(雖然自己電腦執行結果正確=_=)

一開始沒有想好:2被表示為2(1),後來使用\b進行改進(問題可能出在這裡)

#includevoid calculate(int num)

n /= 2;

index --;

if(index != 1)

if(index == 1)

printf("\b+");

calculate(num-n);

return;

} if(num == 2)

printf("\b");

if(num == 1)

printf("%d)",0);

}int main()

ii)通過測試的解法:

#includevoid f(int n)

if(n==2)

int p=1;

int s=0;

while(p<=n)

s=s-1;

if(n==p/2)

else

else}}

int main()

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 0 又如...

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 0...

遞迴 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...