描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。
示例1
输入:
2.00000,3
返回值:
8.00000
示例2
输入:
2.10000,3
返回值:
9.26100
示例3
输入:
2.00000,-2
返回值:
0.25000
说明:
2的-2次方等于1/4=0.25
解题思路
- 如果exponent<0,将幂转换成正整数处理
- 正常情况下,exponent分为偶数、奇数
class Solution {
public:
double Power(double base, int exponent) {
if(exponent<0){
return 1.0/Power(base,-exponent);
}
if(exponent==0){
return 1;
}
if(exponent%2==0){
double x=Power(base,exponent/2);
return x*x;
}
else{
double x=Power(base,exponent/2);
return base*x*x;
}
}
};