剑指offer 数值的整数次方 Python and C++
2020-01-21 本文已影响0人
GhostintheCode
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
思路
可能不需要思路,干就完事
做题可能出现的问题
注意返回值,考虑base和exponent分别等于0的时候。
python
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if base == 0:
return 0
if exponent == 0:
return 1
temp = 1
if exponent<0:
abs_exponent = -exponent
while abs_exponent:
temp *= base
abs_exponent -= 1
return 1/temp
else:
while exponent:
temp *= base
exponent -= 1
return temp
C++
class Solution {
public:
double Power(double base, int exponent) {
float res=1;
if(base==0 & exponent<=0)
return 0;
if(exponent<0)
{
res = 1;
for(int i=1;i<=-exponent;i++)
res *= base;
res=1/res;
//res= pow(base,exponent); // pow,c++中的指数函数
// res=1/res;
return res;
}
if(exponent>=0)
{
res = 1;
//for(int i=1;i<=exponent;i++)
// res *= base;
res= pow(base,exponent); // pow,c++中的指数函数
return res;
}
}
};