326. Power of Three*
https://leetcode.com/problems/power-of-three/
题目描述
Given an integer, write a function to determine if it is a power of three.
Example 1:
Input: 27
Output: true
Example 2:
Input: 0
Output: false
Example 3:
Input: 9
Output: true
Example 4:
Input: 45
Output: false
Follow up:
Could you do it without using any loop / recursion?
C++ 实现 1
使用递归做.
class Solution {
public:
bool isPowerOfThree(int n) {
if (n == 1) return true;
if (n % 3 != 0 || n == 0) return false;
n /= 3;
return isPowerOfThree(n);
}
};
C++ 实现 2
使用循环做. 来自 LeetCode Submission.
class Solution {
public:
bool isPowerOfThree(int n) {
while (n && n%3 == 0) {
n /= 3;
}
return n == 1;
}
};
C++ 实现 3
数学方法.
class Solution {
public:
bool isPowerOfThree(int n) {
return fmod(log10(n)/log10(3), 1)==0;
}
};