力扣解法汇总1780. 判断一个数字是否可以表示成三的幂的和

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个整数 n ,如果你可以将 n 表示成若干个不同的三的幂之和,请你返回 true ,否则请返回 false 。

对于一个整数 y ,如果存在整数 x 满足 y == 3x ,我们称这个整数 y 是三的幂。

示例 1:

输入:n = 12
输出:true
解释:12 = 31 + 32

示例 2:

输入:n = 91
输出:true
解释:91 = 30 + 32 + 34

示例 3:

输入:n = 21
输出:false

提示:

  • 1 <= n <= 107

解题思路:

* 解题思路:
* 对于b不断的除以3,看余数是否是1即可。

代码:

public class Solution1780 {

    public boolean checkPowersOfThree(int n) {
        while (n >= 3) {
            int i = n % 3;
            if (i == 0) {
                n = n / 3;
                continue;
            }
            if (i == 1) {
                n = (n - i) / 3;
                continue;
            }
            return false;
        }
        return n == 1;
    }
}

你可能感兴趣的:(LeetCode编程题解法汇总,leetcode,算法,职场和发展)