问题描述:给定一个double类型的浮点数base和int类型的整数exponent。
求base的exponent次方。
问题分析:
1.数值的整数次方,实际上是将该数值连续相乘整数次。看起来说法是一样的,但其实是两种意思,后者是体现了递归的思路。
2.整数exponent可能是正整数,也可能是负整数,所以应该区别对待。
源代码如下:
double Power(double base, int exponent) {
if(exponent == 0) {
return 1;
}
if(exponent == 1) {
return base;
}
double sum = 1.0;
int exp = abs(exponent);
while(exp) {
sum *= base;
--exp;
}
double result = 0.0;
if(exponent > 0) {
result = sum;
}
else {
result = 1 / sum;
}
return result;
}