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的乘方,题目难度为Easy。
题目限定不能循环或递归,有点无从下手,看了别人的代码才豁然开朗。int范围内3最大的乘方数是3^19,即1162261467,所以只要是1162261467的因子即是3的乘方。具体代码:
class Solution {
public:
bool isPowerOfThree(int n) {
return n>0 && 1162261467%n==0;
}
};
另外还有人用log10(n)/log10(3)是否是整数来判断n是否是3的乘方,大家可以自己实现下看看。