326. Power of Three
Description:
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?
Link:
https://leetcode.com/problems/power-of-three/
Analysis:
博客: 326. Power of Three http://blog.csdn.net/ebowtang/article/details/50485622 里面介绍的很详细。列举法还是挺实用的一种方法,没想到;取对数法容易产生误差而导致结果出错。
Source Code(C++):
#include <iostream>
#include <cmath>
using namespace std;
/****************************最直接的方法,一直整除3***********************************/
class Solution {
public:
bool isPowerOfThree(int n) {
if (n == 1) {
return true;
}
else if (n < 3) {
return false;
}
else {
while(n != 1) {
if (n%3 != 0) {
return false;
}
else {
n /= 3;
}
}
return true;
}
}
};
int main() {
Solution sol;
cout << sol.isPowerOfThree(27);
return 0;
}