LeetCode - 326. Power of Three

Posted dajunjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode - 326. Power of Three相关的知识,希望对你有一定的参考价值。

题目

LeetCode - 326. Power of Three

题目链接

https://leetcode.com/problems/power-of-three/

参考博客
解题思路

解法二一开始打算使用$3^{log_3N}== N$,来判断是否是3的幂,利用的是取整后去尾,再还原。但是pow运算,和log运算时浮点运算,会有精度丢失。C语言中log是以e为底的对数,计算时精度丢失严重,建议用以10为底的对数log10.

解题源码
  1. 解法一
1
2
3
4
5
6
7
8
9
10
class  {
public:
bool isPowerOfThree(int大专栏  LeetCode - 326. Power of Threepan> n) {
long long int a = 1;
while(a < n){
a *= 3;
}
return a == n;
}
};
  1. 解法二
1
2
3
4
5
6
class  {
public:
bool isPowerOfThree(int n) {
return (n > 0 && log10(n)/log10(3) == int(log10(n)/log10(3)));
}
};

以上是关于LeetCode - 326. Power of Three的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode----326. Power of Three(Java)

LeetCode - 326. Power of Three

LeetCode-326. Power of Three

326. Power of Three(LeetCode)

39. leetcode 326. Power of Three

LeetCode 326. 3的幂 Power of Three