Leetcode 326 判断一个数是否是3的幂

判断一个数是否是三的幂数

分析:①同Leetcode231题思路,一直除3取余数,如果最后余数是1,则是3的幂数

          ②3的幂数的特点是如果这个数是3的幂数,它所有的约数都是三的幂数,我们可以借助Math类的一些方法求出int不溢出情况下最大的3的幂数,然后判断所输入的数x是否能被最大幂数整除。

①:java

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

}

②Java:

class Solution {
    public boolean isPowerOfThree(int n) {
        if(n<=0)
            return false;
        else
        {   
            int max=(int)Math.pow(3, (int)(Math.log(2147483647)/Math.log(3)));//java中Math类中的方法可以求出3的最大幂数
            if(max%n==0)
                return true;
            else
                return false;
        }
       
}
}


全部评论

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
10-22 19:44
门头沟学院 Java
面了100年面试不知...:那我得去剪个头
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务