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