题目:1780. 判断一个数字是否可以表示成三的幂的和

思路:数学+三进制数,时间复杂度0(logn)。
因为不能有相同的幂,那么三进制形式,不能出现2
C++版本:
cpp
class Solution {
public:
bool checkPowersOfThree(int n) {
while(n>0){
if(n%3==2) return false;
n/=3;
}
return true;
}
};
JAVA版本:
java
class Solution {
public boolean checkPowersOfThree(int n) {
while(n>0){
if(n%3==2) return false;
n/=3;
}
return true;
}
}
GO版本:
go
func checkPowersOfThree(n int) bool {
for n>0 {
if n%3==2 {return false}
n/=3
}
return true
}