1. 程式人生 > >342. Power of Four(python+cpp)

342. Power of Four(python+cpp)

題目:
解釋:
判斷一個數是不是4的冪,這裡用到一個知識就是
1.判斷一個數是不是2的冪用n&(n-1)==0,一個數是4的冪的前提是它是2的冪
2.4的次冪-1之後是3的倍數:
3.4的次冪的二進位制表示中只有一個1,剩下的全是0,而且唯一的1右邊有偶數個0,所以(num>>1)與0x5555555555 &之後為10x55555555=1010101010101010101010101010101
python程式碼

from math import log10
class Solution(object):
    def isPowerOfFour(self, num):
        """
        :type num: int
        :rtype: bool
        """
if num<=0: return False return num&(num-1)==0 and (num>>1)&(0x55555555)==0;

c++程式碼:

class Solution {
public:
    bool isPowerOfFour(int num) {
        if (num<=0)
            return false;
        return (num&(num-1))==0 & ((num>>1)&(
0x55555555))==0; } };

總結:
遇到位運算和邏輯運算的時候注意運算子的優先順序問題。