数值的整数次方

时间:2022-10-18 20:37:47

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

思路:

递归:n为偶数,a^n=a^n/2*a^n/2;n为奇数,a^n=(a^(n-1))*a  时间复杂度为O(log(n))

public class Solution {
public double Power(double base, int exponent) {
int n=Math.abs(exponent);
if(n==0)
return 1;
if(n==1)
return base;
double result=Power(base,n>>1);
result*=result;
if((n&1)==1)//判断奇数
result*=base;
if(exponent<0)
result=1/result;
return result;
}
}