題目描述
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。
保證base和exponent不同時爲0
思路如下:
首先這個需要考慮幾種情況
1、兩者同時爲0,即0的0次方,若都爲0則不用算了,退出程序即可
2、當base = 1,那麼無論exponent爲多少,結果都爲1
3、當exponent爲1,那麼無論base爲多少,結果都爲base
4、當exponent爲正數的時候,直接求乘積即可
5、當exponent爲負數的時候,取絕對值後求乘積,再求倒數即可
class Solution {
public:
double Power(double base, int exponent) {
double result = 1.0;
if(base == 0 && exponent == 0)
return 0;
if(base == 1 || exponent == 0) return 1;
if(exponent == 1) return base;
if(exponent > 0){
for(int i = 1 ; i <= exponent ; i++)
result *= base;
return result;
}
if(exponent < 0)
{
//指數爲負數,則先求絕對值次方再取倒數
int m = (-1) * exponent;
for(int i = 1 ; i <= m ; i++)
result *= base;
return 1 / result;
}
}
};