- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0
方法
要考虑到指数是负数的时候怎么办,底数是0的时候怎么办?
一般:指数是负数的时候,直接算指数整数的答案,然后1/result.
底数是0时候,因为数学上不存在,所以要与面试官约定一下这种情况等于0,然后设置一个全局的bool值告诉调用者,是什么情况下返回的0
代码有瑕疵,有点冗余
class Solution {
public:
bool g_inputIsZero = false;
double Power(double base, int exponent) {
double result= base;
if(exponent < 0){
if(base == 0){
g_inputIsZero = true;
return 0;
}else{
for(int i = 1;i < (-exponent);i++){
result *= base;
}
return 1/result;
}
}else if(exponent == 0){
if(base == 0){
g_inputIsZero = true;
return 0;
}else{
return 1;
}
}else{
if(base == 0){
g_inputIsZero = true;
return 0;
}else{
for(int i = 1;i < (exponent);i++){
result *= base;
}
return result;
}
}
}
};