一、leetcode题目
1.判断一个数字是否可以表示成三的幂的和
题目描述
你一个整数 n
,如果你可以将 n
表示成若干个不同的三的幂之和,请你返回 true
,否则请返回 false
。
对于一个整数 y
,如果存在整数 x
满足 y ==
3
x
3^x
3x ,我们称这个整数 y
是三的幂。
2.测试用例
输入:
n = 12
输出:
rue
解释:
12 = 3 1 + 3 2 12 = 3^1 + 3^2 12=31+32
提示:
- 1 <= n <= 1 0 7 10^7 107
3.思路
把具体数字化为3
进制,每个位置上只能为1
或0
,为2
时,即不能表示成三的幂的和
4.算法实现
class Solution {
public boolean checkPowersOfThree(int n) {
while(n > 0){
if(n % 3 == 2){
return false;
}
n /= 3;
}
return true;
}
}