给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27
输出: true
示例 2:
输入: 0
输出: false
示例 3:
输入: 9
输出: true
示例 4:
输入: 45
输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
分析:
1.使用循环,每次除以3
2.使用递归,每次除以3
3.使用log,换底公式,logab = logcb/logca
class Solution {
public:
bool isPowerOfThree(int n) {
// 换底公式
// logab = (logcb/logca)
// 判断一个数是否为整数的做法
double temp = log10(n)/log10(3);
if(int(temp) - temp == 0)
return true;
return false;
}
};