第十二题:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:若exponent是0,则直接返回1.0,否则,取exponent的绝对值为e_abs,计算e_abs个base的乘积,若exponent是正数则直接返回该乘积,若exponent是负数,则返回该乘积的倒数。注意,这里没有考虑base取0的情况,但可以通过测试样例,若base取0,则当exponent取大于等于0时返回0,当exponent取负数时,返回正无穷。
Python:
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
e_abs = abs(exponent)
result = 1.0
while e_abs > 0:
result *= base
e_abs -= 1
if exponent > 0:
return result
else:
return 1.0 / result
Java:
public class Solution {
public double Power(double base, int exponent) {
double result = 1.0;
int e_abs = Math.abs(exponent);
while(e_abs > 0){
result *= base;
e_abs--;
}
if(exponent >= 0){
return result;
}else{
return 1.0 / result;
}
}
}