刷题专栏(二十二):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

总结

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

目录
相关文章
|
8月前
|
人工智能 算法 BI
【AcWing算法基础课】第四章 数学知识(未完待续)(2)
从2到n枚举每个数,删掉其所有的倍数,枚举完之后,没有被删掉的数为质数。
60 0
|
8月前
|
存储 人工智能 算法
【AcWing算法基础课】第四章 数学知识(未完待续)(3)
根据下面公式来预处理出等式右边的组合数的值,那么等式左边就可以用等式右边已经算过的值来进行计算(有点像dp)。
65 0
|
2月前
|
存储 编译器 C语言
牛客网刷题笔记小节(二)
牛客网刷题笔记小节(二)
|
2月前
|
算法 Java
刷题专栏(二十五):有效的完全平方数
刷题专栏(二十五):有效的完全平方数
143 2
|
2月前
|
存储 算法
刷题专栏(二十七): 找不同
刷题专栏(二十七): 找不同
106 2
|
2月前
|
算法 Java
刷题专栏(二十三):4的幂
刷题专栏(二十三):4的幂
86 0
|
2月前
|
算法
刷题专栏(十五):各位相加
刷题专栏(十五):各位相加
37 0
|
2月前
|
算法
刷题专栏(十六):丑数
刷题专栏(十六):丑数
40 0
|
2月前
|
算法
刷题专栏(三):二进制求和
刷题专栏(三):二进制求和
46 0
|
2月前
|
算法
刷题专栏(二十四):两个数组的交集
刷题专栏(二十四):两个数组的交集
92 0