靈感來源?
- 保持更新,努力學習
- python腳本學習
4的冪
解題思路
- 位運算條件:4 的冪的二進制表示中只有一個 1,且位于奇數位(如?
41 = 100
,42 = 10000
)。 - 模運算條件:4 的冪減 1 后能被 3 整除(數學性質:
4^k - 1 = (2^k - 1)(2^k + 1)
,其中一個因子必為 3 的倍數)。class Solution:def isPowerOfFour(self, n: int) -> bool:# 條件1:n > 0# 條件2:n是2的冪(通過n & (n-1) == 0判斷)# 條件3:n減1后能被3整除(4^k - 1是3的倍數)return n > 0 and (n & (n - 1)) == 0 and (n - 1) % 3 == 0
逐行解釋
class Solution:def isPowerOfFour(self, n: int) -> bool:# 條件1:n必須為正整數# 4的冪定義為4^k(k為非負整數),因此n必須大于0# 例如:4^0=1, 4^1=4, 4^2=16...condition1 = n > 0# 條件2:n必須是2的冪# 2的冪的二進制表示中只有一個1,例如:2=10, 4=100, 8=1000...# 通過n & (n-1) == 0判斷,例如:# - n=4(100) & 3(011) = 000 → 滿足條件# - n=6(110) & 5(101) = 100 → 不滿足條件condition2 = (n & (n - 1)) == 0# 條件3:n減1后能被3整除# 數學性質:4^k - 1 = (2^k - 1)(2^k + 1),其中一個因子必為3的倍數# 例如:# - 4^1 - 1 = 3 → 3是3的倍數# - 4^2 - 1 = 15 → 15是3的倍數condition3 = (n - 1) % 3 == 0# 同時滿足三個條件時,n才是4的冪return condition1 and condition2 and condition3