您的位置:首页 > 其它

326. Power of Three

2016-02-01 09:32 267 查看
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?
Recursive
public class Solution {
public boolean isPowerOfThree(int n) {
return isPower3(n, 0);
}
public boolean isPower3 (int n, int step){
if(Math.pow(3, step) == n){
return true;
}else if(Math.pow(3, step) < n){
return isPower3(n, step+1);
}else{
return false;
}
}
}


Enumerate 

Set is slower 

<pre name="code" class="java">HashSet<Integer> set = new HashSet<>(Arrays.asList(1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049, 177147, 531441, 1594323, 4782969, 14348907, 43046721, 129140163, 387420489, 1162261467));
return set.contains(n);


return (n == 1 || n == 3 || n == 9 || n == 27 || n == 81 || n == 243 || n == 729 || n == 2187 || n == 6561 || n == 19683 || n == 59049 || n == 177147 || n == 531441 || n == 1594323 || n == 4782969 || n == 14348907 || n == 43046721 || n == 129140163 || n == 387420489 || n == 1162261467);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: