刷题专栏(二十二):3 的幂

简介: 刷题专栏(二十二):3 的幂

前言

刷题专栏到目前已经是第二十二篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天这道题《3 的幂》,是一道关于数学的题目了。

只要你有小学数学的基础,就可以理清这个逻辑,不过要解出这个题,还需要有一定的编程基础。

下面就让我们一起来看一下吧。

image.png

算法题:3 的幂

根据这道题目的描述来看,其实就是给你一个数值,然后让你去判断这个数值是否是3的幂次方。

也就是说是不是除以3能一直除到1。

一般这种题目,都是通过循环来一直除,最后等于1的话就证明是3的幂次方。

如果最后是一个小数,那就绝对不是了。

当然如果期间的每一次除法之后,一旦出现非整数的情况,就证明不是,返回false即可。

这里有一个特殊情况,那就是当传入值为0时,就直接返回false就行了。

然后在不断循环中判断取余的值是否等于0,如果不等于0,则证明除不尽有小数,则直接返回false。

如果等于0,则直接除以3,进入下一次循环,直到等于1为止。

代码展示

代码如下所示,采用上述方法来实现,大家可以自行参考试一下。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.isPowerOfThree(27));
    }
    public boolean isPowerOfThree(int n) {
        if(n == 0){
            return false;   
        }
        while (n != 1){
            if(n % 3 != 0){
                return false;
            }
            n = n / 3;
        }
        return true;
    }
}

代码执行结果

今天的执行结果差强人意了,内存的问题始终得不到好的解决。

image.png

总结

今天的这道题着实简单,只需要取余、除法即可解出此题。

目录
相关文章
|
6月前
|
算法 Java
刷题专栏(二十五):有效的完全平方数
刷题专栏(二十五):有效的完全平方数
180 2
|
6月前
|
存储 算法
刷题专栏(二十七): 找不同
刷题专栏(二十七): 找不同
124 2
|
6月前
|
算法 Java
刷题专栏(二十三):4的幂
刷题专栏(二十三):4的幂
97 0
|
6月前
|
算法
刷题专栏(十五):各位相加
刷题专栏(十五):各位相加
54 0
|
6月前
|
算法
刷题专栏(十六):丑数
刷题专栏(十六):丑数
59 0
|
6月前
|
算法
刷题专栏(二十四):两个数组的交集
刷题专栏(二十四):两个数组的交集
105 0
|
6月前
|
算法
刷题专栏(三):二进制求和
刷题专栏(三):二进制求和
69 0
|
机器学习/深度学习 算法
算法刷题第十三天:位运算--1
时间复杂度:O(logn)。循环次数等于 n 的二进制位中 1 的个数,最坏情况下 n 的二进制位全部为 1。我们需要循环 logn 次。
83 0
算法刷题第十三天:位运算--1
|
存储 机器学习/深度学习 算法
算法刷题第十四天:位运算--2
代码实现中,每枚举一位就将 n 右移一位,这样当前 n 的最低位就是我们要枚举的比特位。当 n 为 0 时即可结束循环。
95 0
算法刷题第十四天:位运算--2
|
算法
2022/4/8回顾算法入门第一章位运算的回顾。
2022/4/8回顾算法入门第一章位运算的回顾。
114 0