pow(x,n)
来源:互联网 发布:出差日历行程软件 编辑:程序博客网 时间:2024/06/05 05:24
注意n为负数的情况
public double pow(double x, int n) { int sign = n < 0 ? -1 : 1; n = Math.abs(n); double result = helper(x, n); return sign == 1 ? result : (double) 1/result; } double helper(double x, int n) { if (n == 0) { return 1; } if (n == 1) { return x; } double result = pow(x, n/2); result *= result; if (n%2 == 1) { result = result*x; } return result; }
一个非递归的方法: http://blog.csdn.net/linhuanmars/article/details/20092829
public double pow(double x, int n) { if(n==0) return 1.0; double res = 1.0; if(n<0) { if(x>=1.0/Double.MAX_VALUE||x<=1.0/Double.MIN_VALUE) x = 1.0/x; else return Double.MAX_VALUE; if(n==Integer.MIN_VALUE) { res *= x; n++; } } n = Math.abs(n); boolean isNeg = false; if(n%2==1 && x<0) { isNeg = true; } x = Math.abs(x); while(n>0) { if((n&1) == 1) { if(res>Double.MAX_VALUE/x) return Double.MAX_VALUE; res *= x; } x *= x; n = n>>1; } return isNeg?-res:res;}
0 0
- Pow(x, n) / Super Pow
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- [Leetcode] Pow(x,n)
- Pow(x, n)
- 【leetcode】Pow(x, n)
- Pow(x, n)
- 求 pow(x, n)
- [LeetCode]Pow(x, n)
- Pow(x,n)
- Pow(x, n)
- Pow(x, n)
- [leetcode]Pow(x, n)
- LeetCode-Pow(x, n)
- Java 集群
- ArcGIS Python实现Modis NDVI批量化月最大合成
- tar 解压缩命令
- 协议森林05 我尽力 (IP协议详解)
- LCA---Tarjan算法
- pow(x,n)
- C语言结构体用法
- 协议森林06 瑞士军刀 (ICMP协议)
- 记第1次DIY装机
- 引用,指针
- 协议森林07 傀儡 (UDP协议)
- Qgis开发6-临时图形-QgsRubberBand
- 协议森林08 不放弃 (TCP协议与流通信)
- 浅谈 C++ 中的 new/delete 和 new[]/delete[]