题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
分析
思路一:
代码:
public class Solution {
public double Power(double base, int exponent) {
double res = 1;
int curExp;
if(exponent > 0) {
curExp = exponent;
} else if (exponent < 0) {
if(base == 0) {
throw new RuntimeException("基数不能为0");
}
curExp = -exponent;
} else {
return 1;
}
while(curExp != 0) {
if((curExp & 1) == 1) {
res *= base;
}
base *= base;//翻倍
curExp >>= 1;
}
return exponent > 0 ? res : (1/res);
}
}