給定乙個整數,編寫乙個函式來判斷它是否是 2 的冪次方。
示例 1:
輸入: 1
輸出: true
解釋: 20 = 1
示例 2:
輸入: 16
輸出: true
解釋: 24 = 16
示例 3:
輸入: 218
輸出: false
分析
class
solution
}
給定乙個整數,寫乙個函式來判斷它是否是 3 的冪次方。
示例 1:
輸入: 27
輸出: true
示例 2:
輸入: 0
輸出: false
示例 3:
輸入: 9
輸出: true
示例 4:
輸入: 45
輸出: false
高階:你能不使用迴圈或者遞迴來完成本題嗎?
分析
n =b
xn=b^x
n=bx
,即n =b
∗b∗b
....
∗b
n=b*b*b....*b
n=b∗b∗
b...
.∗b,如果能整除x,則將除以b x
xx次最後得到商為1,如果商不為1,則n不是b的x次冪。
class
solution
return n ==1;
}}
在4個位元組整數範圍內,3的冪次最大為319=
1162261467
3^=1162261467
319=11
6226
1467
,所以只要判斷其對n取餘是否為0即可。因為$ 3^ % 3^k =0 $
class
solution
}
class
solution
}
經典解法
class
solution
while
(num %4==
0)return num ==1;
}}
class
solution
}
冪數的 冪 的來歷
冪並非外來術語,其原意為蓋東西的方布。九章算數 第一章 方田 中的第二個問題如下 又有田廣十二步,從十四步。問為田幾何?答曰 一百六十八步。方田術曰 廣從步數相乘得積步。所謂方田就是矩形的田,廣是寬度,從是高度。對於這條問題,三國時 劉徽注解道 此積謂 田冪。凡廣從相乘謂之冪。所以至少從三國時期,冪...
2的冪次方
2的冪次方 noip1998 問題描述 任何乙個正整數都可以用2的冪次方表示。例如 137 2 7 2 3 2 0 同時約定方次用括號來表示,即ab可表示為a b 由此可知,137可表示為 2 7 2 3 2 0 進一步 7 2 2 2 2 0 21用2表示 3 2 2 0 所以最後137可表示為 ...
2的冪判別
轉 如何快速判斷正整數是否為2的冪 過往記憶 2的冪有以下兩個特點 1.20 1 0001,21 2 0010,22 4 0100,23 8 1000二進位制中只有乙個1,並且1後面跟了n個0。2.如果將這個數減去1後會發現,僅有的那個1會變為0,而原來的那n個0會變為1 因此將原來的數與去減去1後...