342. Power of Four

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?

判断一个数是不是4的次方

C++(6ms):

1 class Solution {
2 public:
3     bool isPowerOfFour(int num) {
4         return (num&(num-1))==0 && (num-1)%3==0 ;
5     }
6 };

C++(9ms):

 1 class Solution {
 2 public:
 3     bool isPowerOfFour(int num) {
 4         if (num&(num-1))
 5             return false ;
 6         if (num < 0)
 7             return false ;    
 8         while(num){
 9             if (num&1)
10                 return true ;
11             num>>=2 ;
12         }
13         return false ;
14     }
15 };

java(3ms):

1 class Solution {
2     public boolean isPowerOfFour(int num) {
3         return (num&(num-1))==0 && (num-1)%3==0 ;
4     }
5 }
原文地址:https://www.cnblogs.com/mengchunchen/p/7814730.html