326. Power of Three
Given an integer, write a function to determine if it is a power of three.
解题思路
这道题要求不用循环和递归。。。。。。。。(本来超水)
不过我们可以逆向考虑,3的k的幂一定能被3的n的幂整除(其中3的n的幂为范围内最大的power of 3).......(还是略水)
代码
class Solution {
public:
bool isPowerOfThree(int n) {
return ( n>0 && 1162261467%n==0);
}
};
342. Power of Four
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
解题思路
一看到这题还以为跟上面那题是一样的,仔细一想不对啊,不能满足上面关系的数还挺多的(比如8,32)。不过范围内4的k次幂确实不多,那就打个表咯~
代码
class Solution {
public:
bool isPowerOfFour(int num) {
switch(num){
case 1:
return true;
case 4:
return true;
case 16:
return true;
case 64:
return true;
case 256:
return true;
case 1024:
return true;
case 4096:
return true;
case 16384:
return true;
case 65536:
return true;
case 262144:
return true;
case 1048576:
return true;
case 4194304:
return true;
case 16777216:
return true;
case 67108864:
return true;
case 268435456:
return true;
case 1073741824:
return true;
dafault:
return false;
}
return false;
}
};
这段代码击败了100%的代码,打表大法好啊
网友评论