首页 > 其他 > 详细

剑指 Offer 16. 数值的整数次方

时间:2021-03-28 21:59:35      阅读:27      评论:0      收藏:0      [点我收藏+]

题目:

实现 pow(xn) ,即计算 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 }

技术分享图片

 

剑指 Offer 16. 数值的整数次方

原文:https://www.cnblogs.com/SEU-ZCY/p/14589631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!