题目:
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/7/2017
不满足题目的解法,注意n == 1也是true
1 public class Solution {2 public boolean isPowerOfThree(int n) {3 if (n == 1) return true;4 if (n == 2) return false;5 while (n > 3 && n % 3 == 0) n /= 3;6 if (n == 3) return true;7 return false;8 }9 }
可以简化为
1 public class Solution { 2 public boolean isPowerOfThree(int n) { 3 if (n < 1) { 4 return false; 5 } 6 7 while (n % 3 == 0) { 8 n /= 3; 9 }10 11 return n == 1;12 }13 }
题目给出的4种解法,然而并不觉得比native解法好到哪里去。