題目描述
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。
思路:
核心是一個循環,進行不斷累乘。
public class Solution
public double Power(double base, int exponent) {
double result = 1.0;
int exponent_abs = Math.abs(exponent);
if(equal(base, 0.0) && exponent < 0) { // 0的負數幂
return 0.0;
}
if(equal(exponent, 0.0)) {
return 1;
}else {
for(int i = 0; i < exponent_abs; i++) {
result *= base;
}
}
return exponent > 0 ? result : 1 / result;
}
// 在計算機中,判斷兩個double型是否相等
// 隻能判斷它們的絕對值隻差是否在一個很小的範圍内
public boolean equal(double n1, double n2) {
return (n1 - n2 > -0.0000001) && (n1 - n2 < 0.0000001);
}
}