博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode刷题326 3的幂 Power of Three(简单) Python Java
阅读量:4128 次
发布时间:2019-05-25

本文共 875 字,大约阅读时间需要 2 分钟。

题目大意:

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

输入: 27输出: true

示例 2:

输入: 0输出: false

示例 3:

输入: 9输出: true

示例 4:

输入: 45输出: false
class Solution(object):    def isPowerOfThree(self, n):        """        :type n: int        :rtype: bool        """        if n <= 0:            return False        if n == 1:            return True         while n > 1:            if(n % 3 != 0):                return False            n /= 3        return True

 

以下是Java版本:

【思路】

不用循环和递归,则:

3^x=n

log(3^x) = log(n)

x log(3) = log(n)

x = log(n) / log(3)

由于JAVA double浮点型的问题,需判断Math.abs(x - Math.round(x)) < 10e-15

1.	public class Solution {  2.	    public boolean isPowerOfThree(int n) {  3.	        double temp = 10e-15;  4.	        if(n==0) return false;  5.	          6.	          7.	        double res = Math.log(n) / Math.log(3);  8.	        return Math.abs(res-Math.round(res)) < temp;  9.	    }  10.	}

 

转载地址:http://zvuvi.baihongyu.com/

你可能感兴趣的文章
每日算法----70. 经典爬楼梯----2020/11/03
查看>>
String类equals方法详解(包含同类不同对象访问value)
查看>>
find命令详解
查看>>
ffmpeg移植
查看>>
valgrind for android 编译安装
查看>>
VSYNC on Android N
查看>>
[mpeg4]mpeg4码流分析
查看>>
N-vop、S-vop、Packed Bistream
查看>>
H264/AVC视频解码时AVC1和H264的区别 .
查看>>
[mp4]The audio codec for mp4 atom
查看>>
[mp4]mp4文件中的esds box解析
查看>>
字符设备
查看>>
设备控制接口(ioctl 函数)
查看>>
<转自CSDN foxavideo>我自己的FFMpeg编译之路
查看>>
sigsuspend()函数作用详解
查看>>
信号量 互斥锁 条件变量的区别
查看>>
makefile自动化变量及其说明
查看>>
static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
查看>>
Posix多线程编程—线程属性
查看>>
linux fork函数浅析
查看>>