leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法
Pow(x, n)
Implement pow(x, n).
思路:题目不算难。可是须要考虑的情况比較多。
详细代码例如以下:
public class Solution {
public double myPow(double x, int n) {
boolean isMin0 = true;//结果负号
if(x > 0 || (n&1) == 0){//x>0或n为偶数
isMin0 = false;//为正
}
x = x < 0 ? -x:x;//将x统一设为正值
double d = 1.0;
if(n > 0){//n分三种情况
while(n > 0){
d = d*x;
n--;
if((Math.abs(d - 1.0) < 1e-15)){
d = 1.0;//默认等于1
break;
}else if((Math.abs(d) < 1e-15)){
d = 0;//默认等于0
break;
}
}
}else if(n == 0){
return 1;
}else{
while(n < 0){
d = d/x;
n++;
if((Math.abs(d - 1.0) < 1e-15)){
d = 1;
break;
}else if((Math.abs(d) < 1e-15)){
if(isMin0){//除数等于0。将等于正负无穷
return Double.MIN_VALUE;
}else{
return Double.MAX_VALUE;
}
}
}
}
return isMin0?-d:d;
}
}
leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法的更多相关文章
- LeetCode 50. Pow(x, n) 12
50. Pow(x, n) 题目描述 实现 pow(x, n),即计算 x 的 n 次幂函数. 每日一算法2019/5/15Day 12LeetCode50. Pow(x, n) 示例 1: 输入: ...
- LeetCode - 50. Pow(x, n)
50. Pow(x, n) Problem's Link ----------------------------------------------------------------------- ...
- leetcode 50. Pow(x, n) 、372. Super Pow
50. Pow(x, n) 372. Super Pow https://www.cnblogs.com/grandyang/p/5651982.html https://www.jianshu.co ...
- Java实现 LeetCode 50 Pow(x,n)
50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...
- [LeetCode] 50. Pow(x, n) 求x的n次方
Implement pow(x, n), which calculates x raised to the power n(xn). Example 1: Input: 2.00000, 10 Out ...
- LeetCode 50 Pow(x, n) (实现幂运算)
题目链接:https://leetcode.com/problems/powx-n/?tab=Description Problem:实现幂运算即 pow(x,n) 设形式为pow(x,n) ...
- LeetCode 50 - Pow(x, n) - [快速幂]
实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10输出: 1024.00000 示例 2: 输入: 2.10000, 3输出: 9.26100 示例 ...
- [leetcode]50. Pow(x, n)求幂
Implement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, 10 Ou ...
- Leetcode——50.Pow(x, n)
@author: ZZQ @software: PyCharm @file: leetcode50_myPow.py @time: 2018/11/22 13:58 要求:实现 pow(x, n) , ...
随机推荐
- 中国石油大学(华东)OJ题目的HTML爬取
这几天刷华东OJ的题,写博客还要复制HTML的代码,感觉麻烦的一批,然后就去摸鱼写了个小爬虫.. 看一下运行效果吧- 输入详细的pid.cid或id即可爬取相应的html代码 一些注意要点: 关键的还 ...
- Linux漏洞建议工具Linux Exploit Suggester
Linux漏洞建议工具Linux Exploit Suggester 在Linux系统渗透测试中,通常使用Nessus.OpenVAS对目标主机进行扫描,获取目标主机可能存在的漏洞.如果无法进行漏洞 ...
- 将一个txt里的A和B谈话内容获取出来并分别保存到A和B的txt文件中
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream;import java.io.Fi ...
- Android Developer -- Bluetooth篇 开发实例之三 管理连接
Managing a Connection When you have successfully connected two (or more) devices, each one will have ...
- [置顶]
kubernetes资源类型--持久化存储Persistent Volume和Persistent Volume Claim
概念 存储管理跟计算管理是两个不同的问题.理解每个存储系统是一件复杂的事情,特别是对于普通用户来说,有时并不需要关心各种存储实现,只希望能够安全可靠地存储数据. 为了简化对存储调度,K8S对存储的供应 ...
- hdu2846 Repository
//--------------------------------------------------------------- /*---字典树应用问题.考虑到要查询的次数在10^6,显然直接插入 ...
- 设计模式之建造者模式(php实现)
github地址:https://github.com/ZQCard/design_pattern/** * 建造者模式 * 将一个复杂对象的建造与调用者分离.调用者只需要给出指定对象的类型和内容,建 ...
- SQL Script for read information from a csv file in FTP Server
DECLARE w_file_path VARCHAR2(4000) := 'XXIF_INPUT'; --all_directories.directory_name w_file_name VAR ...
- TCP为什么要三次握手,不是两次四次
转载: http://blog.chinaunix.net/uid-20726927-id-2455485.html 在革命战争影片中,经常会看到英勇的解放军战士背着步话机在喊“长江长江,我是黄河 ...
- 转: android 实现效果特效
一. 各种控件效果 http://www.jcodecraeer.com/plus/list.php?tid=31&TotalResult=990&PageNo=7