您的位置:首页 > 其它

Leetcode—三的幂

2016-01-14 14:44 357 查看
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?
如题,给定一个数,判定其是否是3的幂。
注意不要用循环来解。

public 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;
}
}

这是常规方法……

public boolean isPowerOfThree(int n) {
int[] allPowerOfThree = new int[]{1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049, 177147, 531441, 1594323, 4782969, 14348907, 43046721, 129140163, 387420489, 1162261467};
return Arrays.binarySearch(allPowerOfThree, n) >= 0;
}

这种方法震惊了……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: