Leetcode:326. Power of Three(JAVA)
2016-03-03 16:51
309 查看
【题目描述】
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?
【思路】
不用循环和递归,则:
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
public class Solution {
public boolean isPowerOfThree(int n) {
double temp = 10e-15;
if(n==0) return false;
double res = Math.log(n) / Math.log(3);
return Math.abs(res-Math.round(res)) < temp;
}
}
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?
【思路】
不用循环和递归,则:
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
public class Solution {
public boolean isPowerOfThree(int n) {
double temp = 10e-15;
if(n==0) return false;
double res = Math.log(n) / Math.log(3);
return Math.abs(res-Math.round(res)) < temp;
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树