【题目描述】
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0
【思路】
主要是需要考虑两个特殊情况:
1)当指数为负数(此时先按照正数正常计算,最后用1.0除以re即可)
2)当底数为0(先判断底数为0)
【代码】
C++:
class Solution {
public:
double Power(double base, int exponent) {
if(base-0.0<0.00001&&base-0.0>-0.00001&&exponent<0){
return 0.0;
}
int absexp=exponent;
if(exponent<0){
absexp=-exponent;
}
double re=pow(base,absexp);
if(exponent<0){
re=1.0/re;
}
return re;
}
double pow(double base, int exponent){
double re=1.0;
for(int i=1;i<=exponent;i++){
re*=base;
}
return re;
}
};
Python:
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if(base==0.0 and exponent<0):
return 0.0
absexp=abs(exponent)
re=self.pow(base,absexp)
if exponent<0:
re=1.0/re
return re
def pow(self,base,exponent):
re=1.0
for i in range(exponent):
re*=base
return re