题目
来源:3的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例
解题思路及代码
1. 思路
题目给定x的范围为整数,我们可以确定最小幂次为0,3的幂次方中最小整数为1。让x不断除以3求余数,同时不断对x赋值除以3之后的数。若出现x除以3余数不为0且x不等于1,则不符合条件,否则符合条件
另一种思路,判断log3(n)是否为整数
2. 代码
var isPowerOfThree = function(n) {
if (n <= 0) {
return false;
} else {
while (n % 3 == 0) {
n /= 3;
}
if (n != 1) {
return false
} else {
return true;
}
}
};
var isPowerOfThree = function(n) {
if (n <= 0) {
return false;
}
var res = Math.log10(n) / Math.log10(3);
return res - parseInt(res) > 0 ? false : true;
};