NOIP學習之遞迴 189 2的冪次方表示

2021-10-05 01:20:06 字數 938 閱讀 9558

測試鏈結

總時間限制: 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表示(在表示中不能有空格)。

樣例輸入

137樣例輸出

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

解題思路:

首先將整數轉換位二進位制數,找出1的位就是要進行2的冪次的數,

判斷如果冪的值大於2,那麼就要對冪進行二進位制轉換,再遞迴輸出

#include

using

namespace std;

void

mcf(

int num,

int n)

if(r==1)

}}intmain()

遞迴之求冪

剛開始學習用遞迴實現x的n次方時,其思想 或者遞推式 一般如下 x n x x n 1 n 0 x n 1 n 0 c語言 如下 int64為有符號8位元組整數 int64 power int x,int n return x power x,n 1 這種簡單的求冪演算法的時間複雜度為o n 下面介...

NOIP學習之遞迴 188 全排列

測試鏈結 總時間限制 1000ms 記憶體限制 65536kb 描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之...

2的冪次方(遞迴)

任何乙個正整數都可以用22的冪次方表示。例如137 27 23 2 0 同時約定方次用括號來表示,即a b 可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 2 7 2 3 2 0 進一步 7 22 2 207 22 2 20 2 1用2表示 並且3 2 2 0 所以最後137可表示...