leetcode 326. Power of Three(3的次方)

来源:互联网 发布:看黄子片哪个软件安全 编辑:程序博客网 时间:2024/05/16 07:47

问题描述:

  Given an integer, write a function to determine if it is a power of three.

Follow up:

  Could you do it without using any loop / recursion?

  首先,考虑最简单的做法,不断的除以3去进行验证,代码如下:

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

  但是,题目里面有提到,能够不用循环进行解答?由于输入的是int类型,最大的3的次方数为3^19=1162261467,所以只要判断这个数能不能被要判断的数整除即可。代码如下:

class Solution {    public boolean isPowerOfThree(int n) {        if(n == 0) return false;        return (n > 0 && 1162261467 % n == 0);    }}