实现 pow(x, n) ,即计算 x 的 n 次幂函数。不得使用库函数,同时不需要考虑大数问题。
示例 1:
输入:x = 2.00000, n = 10 输出:1024.00000
示例 2:
输入:x = 2.10000, n = 3 输出:9.26100
示例 3:
输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25
提示:
-100.0 < x < 100.0
-231 <= n <= 231-1
-104 <= xn <= 104
1 class Solution { 2 public double myPow(double x, int n) { 3 if(n==0||x==1.0){return 1.0;} 4 if(n==Integer.MIN_VALUE){ //最小值单独处理 最小值的绝对值超出了int范围 5 n=Math.abs(n+1); 6 return 1/(pow(x,n)*x); 7 } 8 boolean bool=n>0?true:false; 9 n=Math.abs(n); 10 double res=pow(x,n); 11 return bool?res:1/res; 12 } 13 14 public static double pow(double y,int m){ 15 if(m==1){return y;} 16 if(m%2==0){ 17 double res= pow(y,m/2); 18 return res*res; 19 } 20 return pow(y,m-1)*y; 21 } 22 }
原文:https://www.cnblogs.com/SEU-ZCY/p/14589631.html