class Solution {
public:
bool checkPowersOfThree(int n) {
}
};
1780. 判断一个数字是否可以表示成三的幂的和
给你一个整数 n
,如果你可以将 n
表示成若干个不同的三的幂之和,请你返回 true
,否则请返回 false
。
对于一个整数 y
,如果存在整数 x
满足 y == 3x
,我们称这个整数 y
是三的幂。
示例 1:
输入:n = 12 输出:true 解释:12 = 31 + 32
示例 2:
输入:n = 91 输出:true 解释:91 = 30 + 32 + 34
示例 3:
输入:n = 21 输出:false
提示:
1 <= n <= 107
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 1.8 MB, 提交时间: 2022-11-27 12:32:50
func checkPowersOfThree(n int) bool { for n != 0 { if n % 3 == 2 { return false } n /= 3 } return true }
cpp 解法, 执行用时: 0 ms, 内存消耗: 5.8 MB, 提交时间: 2022-11-27 12:32:05
class Solution { public: bool checkPowersOfThree(int n) { //最多可以余1,然后看能不能整除3 while(n){ if(n%3==1||n%3==0){ n/=3; }else{ return false; } } return true; } };
python3 解法, 执行用时: 40 ms, 内存消耗: 14.9 MB, 提交时间: 2022-11-27 12:31:43
class Solution: def checkPowersOfThree(self, n: int) -> bool: while n != 0: if n % 3 == 2: return False n = n // 3 return True
javascript 解法, 执行用时: 64 ms, 内存消耗: 41.1 MB, 提交时间: 2022-11-27 12:30:14
/** * @param {number} n * @return {boolean} */ var checkPowersOfThree = function(n) { while(n) { if (n % 3 === 2) return false; n = Math.floor(n / 3); } return true; };