前言
刷题专栏到目前已经是第二十二篇了,欢迎大家来关注我的刷题专栏,一起来刷题。
今天这道题《3 的幂》,是一道关于数学的题目了。
只要你有小学数学的基础,就可以理清这个逻辑,不过要解出这个题,还需要有一定的编程基础。
下面就让我们一起来看一下吧。
算法题: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; } }
代码执行结果
今天的执行结果差强人意了,内存的问题始终得不到好的解决。
总结
今天的这道题着实简单,只需要取余、除法即可解出此题。