难度:简单
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
注:考察递归思想。
思路:实现的是库函pow的功能。先求平方,在平方的基础上求4次方,依次递归实现。公式为(源于剑指offer)
public class Solution { boolean invalidInput=false; public double Power(double base, int exponent) { if(equal(base,0.0)&&exponent<0){ invalidInput=true; return 0.0; } int absexponent=exponent; if(exponent<0) absexponent=-exponent; double res=getPower(base,absexponent); if(exponent<0) res=1.0/res; return res; } boolean equal(double num1,double num2){ if(num1-num2>-0.000001&&num1-num2<0.000001) return true; else return false; } double getPower(double b,int e){ if(e==0) return 1.0; if(e==1) return b; double result=getPower(b,e>>1); result*=result; if((e&1)==1) result*=b; return result; } };