题目描述
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-three
测试用例
示例 1:
输入:n = 27
输出:true
示例 2:
输入:n = 0
输出:false
示例 3:
输入:n = 9
输出:true
示例 4:
输入:n = 45
输出:false
算法
1. 利用log【leetcode评论区】
class Solution {
public boolean isPowerOfThree(int n) {
if(n == 0) {
return false;
}
double x = Math.log(n) / Math.log(3);
return Math.abs(x - Math.round(x)) <= 1e-10;
}
}
2. 利用循环【自己弱鸡解法】
class Solution {
public boolean isPowerOfThree(int n) {
while(n % 3 == 0) {
n /= 3;
if(n == 0) {
return false;
}
}
if(n == 1) {
return true;
}
return false;
}
}
|