题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
时间限制:1秒 空间限制:32768K 热度指数:447669
解题思路:本题主要是实现某一个数的整数次乘方,需要注意的点是exponent可能为正数、负数和0,底数base不能为0。如果使用C++其实可以直接调用库函数里的pow(base, exponent)方法就可以得到结果。 但是既然是作为题目出现,肯定目的是让我们清楚乘方的原理。 base的exponent次方有三种情况: (1)exponent ==0 时,power(base, exponent) = 1
(2)exponent>0时, power(base, exponent) = base* base* base* base* base* .... base* base*base(总共exponent个base相乘);
(3) exponent < 0时, power(base, exponent) = 1/ (base* base* base* base* base* .... base* base*base) ; 总共exponent个base相乘。
代码如下:
// C++代码
class Solution {
public:
double Power(double base, int exponent) {
// return pow(base, exponent);
double result = 1;
if(base == 0) {
cout<<"0不能作为底数"<<endl;
return 0;
}
int count = abs(exponent);
while(count-- > 0){
result *= base;
}
return exponent > 0 ? result : 1/result;
}
};