这三道题做法一致,以326.Power of Three 为例
题目要求:
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?
这里给出三种方法
public class Solution {
public boolean isPowerOfThree(int n) {
//循环
if(n==1)
{
return true;
}
while(n>0)
{
if(n%3!=0)
{
return false;
}
n=n/3;
if(n==3||n==1)
{
return true;
}
}
return false;
//递归
if(n==1)
{
return true;
}
if(n<=0)
{
return false;
}
if(n%3!=0)
{
return false;
}
if(n==3||n==1)
{
return true;
}
return isPowerOfThree(n/3);
//不循环不递归
if(n==1)
{
return true;
}
if(n<=0)
{
return false;
}
return (Math.log10(n)/Math.log10(3))%1==0;
}
}