题目:
给你一个整数 n ,如果你可以将 n 表示成若干个不同的三的幂之和,请你返回 true ,否则请返回 false 。
对于一个整数 y ,如果存在整数 x 满足 y == 3x ,我们称这个整数 y 是三的幂。
算法:
方法一:三进制
理解题意,如果能表示成三的幂的和,意味着这个数能用三进制表示,如何确认这个数能不能用三进制表示呢?三进制的每一个都是0或者1,我们求出每一位,看是不是都是0,1
func checkPowersOfThree(n int) bool {
for n > 0 {
// 从低位到高位获取三进制的值,
if n % 3 == 2 {
return false
}
n = n / 3
}
return true
}