题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
class Solution {
public:
bool Equal(double num1, double num2)
{
if (num1 - num2 > -0.0000001 &&
num1 - num2 < 0.0000001)
{
return true;
}
else
{
return false;
}
}
double PowerWithUintExponent(double baseNumber, int exponent)
{
double result = 1.0;
for (int i = 1; i <= exponent; i++)
{
result = result * baseNumber;
}
return result;
}
double Power(double base, int exponent)
{
// 当底数(base)是零且指数是负数的时候提示参数非法
if (Equal(base, 0.0) && exponent < 0)
{
return 0.0;
}
int absExponent = exponent;
if (exponent < 0)
{
absExponent = (-1 * exponent);
}
double result = PowerWithUintExponent(base, absExponent);
// 当指数为负数的时候需算出次方的结果之后再取倒数
if(exponent < 0)
{
result = 1.0 / result;
}
return result;
}
};
网友评论