题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
我们可以将 x ^ n 转化为 (x * x) ^ n / 2 这是当n 为偶数的情况 奇数还需要 乘一个自身 你可以自己算一下
转化为这个公式之后我们就可以用递归求解
这里注意当n 为负数时 结果为它的倒数 我们要判断一下 不然会出错
下面使java代码实现
public class Solution {
public double Power(double base, int exponent) {
if(exponent == 0) {
return 1;
}
boolean flag = false;
if(exponent < 0) {
flag = true;
exponent = -exponent;
}
double res = Power(base * base, exponent / 2);
if(exponent % 2 == 1) {
res *= base;
}
return flag ? 1 / res : res;
}
}