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;//默认等于1break;}else if((Math.abs(d) < 1e-15)){d = 0;//默认等于0break;}}}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次方) 解题思路和方法

相关文章:

你感兴趣的文章:

标签云: