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

82 阅读1分钟

题目:
给你一个整数 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
}