zoukankan      html  css  js  c++  java
  • 0326. Power of Three (E)

    Power of Three (E)

    题目

    Given an integer n, return true if it is a power of three. Otherwise, return false.

    An integer n is a power of three, if there exists an integer x such that n == 3x.

    Example 1:

    Input: n = 27
    Output: true
    

    Example 2:

    Input: n = 0
    Output: false
    

    Example 3:

    Input: n = 9
    Output: true
    

    Example 4:

    Input: n = 45
    Output: false
    

    Constraints:

    • -2^31 <= n <= 2^31 - 1

    Follow up: Could you solve it without loops/recursion?


    题意

    判断一个整数是不是3的幂。

    思路

    比较直接的就迭代去除即可。

    O(1)方法:在Integer范围内,3的最大幂是3^19=1162261467,且其因数只有3的幂次,那么只要n是1162261467的因数,则n一定是3的幂次。


    代码实现

    Java

    迭代

    class Solution {
        public boolean isPowerOfThree(int n) {
            if (n <= 0) return false;
    
            while (n > 1) {
                if (n % 3 != 0) return false;
                n /= 3;
            }
    
            return true;
        }
    }
    

    数学计算

    class Solution {
        public boolean isPowerOfThree(int n) {
            return n > 0 && 1162261467 % n == 0;
        }
    }
    
  • 相关阅读:
    0 Explore TreeView
    按钮颜色选择器
    颜色组合框
    Get Files from Directory
    05.0 图片
    WINAPI 变量(2861个)
    为字符串增加50个空格
    让DataGridView显示行号
    相对路径
    SpecialFolder
  • 原文地址:https://www.cnblogs.com/mapoos/p/14709641.html
Copyright © 2011-2022 走看看