fengsehng

# 题目：

``````Given an integer (signed 32 bits), write a function to check whether it is a power of 4.

Example:
Given num = 16, return true. Given num = 5, return false.

Follow up: Could you solve it without loops/recursion?``````

# 思路：

• 题意是判断一个32位的符号整数是不是4的次方
• 对于2的次方的判断是n&（n-1）== 0
10 => 2
100 => 4
1000 => 8
10000 => 16
100000 => 32
1000000 => 64
10000000 => 128
100000000 => 256
1000000000 => 512
10000000000 => 1024
100000000000 => 2048
1000000000000 => 4096
10000000000000 => 8192
100000000000000 => 16384
由图中观察可以看出来，4的次方，1都在从右往左数的奇数位，1，3，5等
所有从2的次方移除4的次方，与上01010101010101010101010101010101，十六进制是0x555555555

# 代码：

``````public class Solution {
public boolean isPowerOfFour(int num) {
return num > 0 && (num&(num -1)) == 0 && (num & 0x55555555) != 0;
}
}``````

### fengsehng

leetcode: power of three 三种解法

u011303443
2017/08/01
0
0
Power of Four(leetcode342)

Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example 1: Input: 16Output: true Example 2: Input: 5Output: false Follow up: Could you s......

woshixin
2018/12/20
0
0
Power of Three(leetcode326)

Given an integer, write a function to determine if it is a power of three. Example 1: Input: 27Output: true Example 2: Input: 0Output: false Example 3: Input: 9Output: true Exam......

woshixin
2018/12/18
0
0
Leetcode 342. Power of Four

SnailTyan
2018/09/04
0
0
PowerOfTwo(leetcode231)

given an integer, write a function to determine if it is a power of two. Example 1: Input: 1Output: trueExplanation: 20 = 1 Example 2: Input: 16Output: trueExplanation: 24 = 16 ......

woshixin
2018/12/07
0
0

onedotdot
27分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢？

Java干货分享

4
0

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

2
0

1
0

linux-tao

5
0