给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
解析:①Math.pow(); 不解释
②暴力求解; 没意义
③迭代 面试官喜欢
代码:③
public class Solution {
public double Power(double base, int exponent) {
if(exponent == 0)
return 1;
if(exponent == 1)
return base;
if(exponent < 0){
base = 1/base;
exponent = -exponent;
}
double ans = Power(base, exponent/2); // 指数减半,则结果平方
ans *= ans;
if(exponent % 2 == 1) //如果指数为奇数,减半之后,少乘了一次底数
ans *= base;
return ans;
}
}