任何乙個正整數都可以用2的冪次方表示

2021-07-10 21:37:14 字數 630 閱讀 3264

例如:137=2^7+2^3+2^0,約定a^b可表示為a(b),則137可表示為:2(7)+2(3)+2(0),進一步7=2^2+2+2^0,3=2+2^0。所以137最終可以表示為2(2(2)+2+2(0))+2(2+2(0))+2(0)。

輸入:正整數(n<=20 000).

輸出:符合約定的n的0,2表示(在表示中不能有空格)。

演算法設計:由於不知道資料的位數,加上對資料還是從低位到高位的操作比較簡單,而輸出顯然是由高位到低位進行的,這是就要考慮用遞迴機制實現演算法了。

//n為運算元,r為遞迴深度

void fun(int n, int r)

else

}}

經過上面的處理,如果輸入fun(137,0),則輸出為2(7)+2(3)+2(0)。

這時,如果對7和3遞迴處理,則為滿足題意的輸出。如下**所示:

//n為運算元,r為遞迴深度

void fun(int n, int r)

}else}}

}

經過上面的處理,如果輸入fun(137,0),

則輸出為2(2(2)+2+2(0))+2(2+2(0))+2(0)。

判斷乙個正整數是2的n次

判斷乙個正整數是2的n次,假設不包括0。想了三種辦法。第一種 任意乙個數,如果是1,則為2的n次,如果大於1,則1 判斷該數是否為偶數,是則轉2,否則不是2的n次。2 判斷該數是否為2,是則為2的n次,否則對2做整除運算後轉1。在devc 上進行了實現,如下 include using namesp...

如何判斷乙個正整數是否是4的冪?

4的冪具有的性質 4的冪用二進位制可表示為長度為奇數 2的偶數次冪 且只有首位為1的形式。證明 4n 22 n 22 n 4的冪減去1是3的倍數。證明 4n 1 3 n 1 3cn 1n 32cn 2n 3n 3 c n 1n 3cn 2n 3n 1 1 因此4 n 1 n 1 是3的倍數。乙個正整...

判斷乙個十進位制正整數是不是2的冪

description hry進入大學之後學習了二進位制,有一天他遇到這樣乙個問題,判斷乙個十進位制正整數是不是2的冪?input 第一行是乙個正整數t,表示有t組測試資料。每組測試資料有一行乙個正整數n。1 t 10000,1 n 1000000000000000000 output 每組測試資料...