題目描述
給定一個 double 類型的浮點數(shù) base 和 int 類型的整數(shù) exponent。求 base 的 exponent 次方。
思路分析
題目要求感混,int 類型的整數(shù) exponent植锉,那么意味著 exponent 可以是 正整數(shù)、負(fù)整數(shù)幸斥、零匹摇,三種情況。
1)當(dāng) exponent 為正整數(shù)時甲葬,就要對 base 進行乘積幾次廊勃,一個 for 循環(huán)即可;
2)當(dāng) exponent 為負(fù)整數(shù)時经窖,先對 exponent 取正坡垫,接著跟 1)一樣,對 base 進行乘積幾次画侣;
3)當(dāng) exponent 為零時冰悠,直接返回 1 即可;
PS:可能有人在想配乱,如果 傳入的 double 類型的浮點數(shù) base 為 0.0 時該怎么辦溉卓,從數(shù)學(xué)上來說,傳入 0 是沒有任何意義的搬泥, 0 多少次冪都為 0桑寨;
image.png
public class Solution {
public double Power(double base, int exponent) {
double result = base;
if(exponent > 0){ //當(dāng) exponent是正整數(shù)
for(int i = 1; i < exponent; i++){
result *= base;
if(result > 1.7976931348623157E308){
System.out.println("已經(jīng)超出double類型的取值范圍。");
return -1;
}
}
return result;
}else if(exponent < 0){ //當(dāng) exponent是負(fù)整數(shù)
exponent = -exponent;
for(int i = 1; i < exponent; i++){
result *= base;
if(result > 1.7976931348623157E308){
System.out.println("已經(jīng)超出double類型的取值范圍佑钾。");
return -1;
}
}
return 1/result;
}else{ // 當(dāng) exponent 為 0
return 1;
}
}
}
參考文獻https://www.nowcoder.com/profile/937880/codeBookDetail?submissionId=1514426
https://www.nowcoder.com/profile/641155/codeBookDetail?submissionId=1504859