題目描述
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。
代碼實現
public class Solution {
public double Power(double base, int exponent) {
//首先考慮底數為0的特殊情況
if(equal(base,0))
return exponent <= 0 ? -1 : 0;
//其次考慮指數
else {
double result = 1.0;
for(int i = 1;i <= Math.abs(exponent);i++){
result *= base;
}
//若指數為負 則對result取倒數
if(exponent < 0)
result = 1.0/result;
//否則直接返回result
return result;
}
}
//判斷兩個小數是否相等
public boolean equal(double d1,double d2){
return (d1 - d2 > -0.0000001) && (d1 - d2 < 0.0000001) ? true : false;
}
}
主要思路
1、由于計算機表示小數都有誤差,我們不能直接用==判斷兩個小數的大小,如果兩個小數的差的絕對值很小,比如小于0.0000001,就可以認為它們相等
2、題目本身不難但容易出錯,主要考查思維的全面性吧