Question
Link : https://leetcode.com/problems/power-of-three/
Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
问题很简单:就是判断一个数是不是3的幂。
Code
之前我们写过一个判断一个数是不是4的幂的方法http://blog.csdn.net/linyousong/article/details/51194660,如果我们只是拿那个做一个简单的修改而已的话,提交到leetcode会发现通不过。然后发现大神们又有另一种方式来在O(1)时间复杂度下进行计算。
(C++ : 128ms)
class Solution {
public:
bool isPowerOfThree(int n) {
int max3PowerInt = 1162261467;
int maxInt = 1162261467;
if(n <= 0 || n > maxInt) return false;
return max3PowerInt % n == 0;
}
};