剑指offer:数值的整数次方

时间:2021-08-09 12:09:32

题目描述:

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

解题思路:

一开始直接用一个for循环做连乘,测了一下,发现这个指数可能是负数,于是分了两种情况后ac。

看了网上的题解,发现还有base为0的情况,此时直接就返回0,但是这里不能直接用==来判断两个小数是否相等。设定一个很小的数来做判断,例如0.0000001。

代码:

class Solution {
public:
double Power(double base, int exponent) {
if((base-)>-0.0000001 && (base-)<0.0000001)
return ;
if(exponent==)
return ;
double sum=;
if(exponent>)
{
for(int i = ; i<=exponent; i++)
{
sum = sum*base;
}
return sum;
}
else{
for(int i=; i<=(-exponent); i++)
{
sum = sum*(1.0/base);
}
}
return sum;
}
};