258 字
1 分钟
Leetcode->3的幂
题目
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true
;否则,返回 false
。
整数 n
是 3 的幂次方需满足:存在整数 x
使得 n == 3x
示例 1:
输入:n = 27
输出:true
示例 2:
输入:n = 0
输出:false
示例 3:
输入:n = 9
输出:true
示例 4:
输入:n = 45
输出:false
提示:
-231 <= n <= 231 - 1
解题:key:
①循环
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfThree = function (n) {
if (n < 1) return false
let res = 0;
while (n > 1) {
if (res = n % 3) {
return false
}
n /= 3
}
return true
};
②判断是否为最大3的幂的约数
var isPowerOfThree = function(n) {
while (n !== 0 && n % 3 === 0) {
n = Math.floor(n / 3);
}
return n === 1;
};
③转换成3进制字符串后判断
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfThree = function (n) {
const str = n.toString(3)
if (str[0] !== '1') return false
for (let i = 1; i < str.length; i++) {
if (str[i] !== '0') return false
}
return true
};
Leetcode->3的幂
https://blog.oceanh.top/posts/algorithm/3的幂/