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;}}
版权声明:本文为博主原创文章,,未经博主允许不得转载。
昨晚多几分钟的准备,今天少几小时的麻烦。