题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。
示例1
输入
2.00000,3
返回值
8.00000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class Solution {
public:
double Power(double base, int exponent) {
if(exponent == 0)
return 1.0;
else
{
double result = 1;
for(int i= 0;i<abs(exponent);i++)
result *= base;
if(exponent > 0)
return result;
else
return 1/result;
}
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| class Solution {
public:
double Power(double base,int exponent)
{
if(exponent<0)
{
exponent = -exponent;
base = 1/base;
}
return q_power(base,exponent);
}
double q_power(double base, int exponent) {
if(exponent == 0)
return 1.0;
else
{
double result = q_power(base, exponent/2);
if(exponent&1)
{
return result*result*base;
}
else
{
return result * result;
}
}
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| class Solution {
public:
double Power(double base,int exponent)
{
if(exponent<0)
{
exponent = -exponent;
base = 1/base;
}
return q_power(base,exponent);
}
double q_power(double base,int exponent)
{
double result = 1;
while(exponent)
{
if(exponent&1)
{
result *= base;
}
base *= base;
exponent>>=1;
}
return result;
}
};
|