剑指offer--数值的整数次方

来源:互联网 发布:淘宝怎么删除宝贝分类 编辑:程序博客网 时间:2024/05/21 15:00

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

分类:数学

解法1:显然可以使用递归解决,为了提高递归效率,避免重复计算,对于exponent,可以分成exponent/2两部分来求
如果exponent是奇数,则减一,再分成(exponent-1)/2
[java] view plain copy
  1. public class Solution {  
  2.     public double Power(double base, int exponent) {          
  3.         if(exponent<0){  
  4.             exponent = -exponent;  
  5.             return 1/solve(base,exponent);  
  6.         }  
  7.         return solve(base,exponent);  
  8.       }  
  9.       
  10.     public double solve(double base, int exponent){  
  11.         if(exponent==0return 1;  
  12.         if(exponent%2==1){  
  13.             return base*solve(base,(exponent-1)/2)*solve(base,(exponent-1)/2);  
  14.         }else{  
  15.             return solve(base,exponent/2)*solve(base,exponent/2);  
  16.         }  
  17.     }  
  18. }  


原文链接  http://blog.csdn.net/crazy__chen/article/details/44987925

原创粉丝点击