(LeetCode 每日一题) 1780. 判断一个数字是否可以表示成三的幂的和 (数学、三进制数)
题目:1780. 判断一个数字是否可以表示成三的幂的和
思路:数学+三进制数,时间复杂度0(logn)。
因为不能有相同的幂,那么三进制形式,不能出现2
C++版本:
class Solution {
public:bool checkPowersOfThree(int n) {while(n>0){if(n%3==2) return false;n/=3;}return true;}
};
JAVA版本:
class Solution {public boolean checkPowersOfThree(int n) {while(n>0){if(n%3==2) return false;n/=3;}return true;}
}
GO版本:
func checkPowersOfThree(n int) bool {for n>0 {if n%3==2 {return false}n/=3}return true
}