题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:这道题目本身并不难,但我们需要考虑代码的完整性,在面试过程中体现出来。幂的情况无非是三种:正数、0和负数。当幂是0的时候,直接返回1;当幂是负数的时候,需要先把其转化为正数来处理,然后返回其倒数就可以了;当幂是正数的时候,按照正常的计算方法就可以。同时还要注意三种错误的处理方法:返回值,全局变量,以及异常处理。
public class Solution {
boolean g_invalidInput = false; //
public double Power(double base, int exponent) {
double result = base;
if(base == 0 && exponent < 0){
return 1;
g_invalidInput = true;
}
if(exponent == 0) return 1;
if(exponent > 0){
for (int i = 1; i < exponent; i++) {
result *= base;
}
return result;
}else{
int absExponent = -exponent;
for (int i = 1; i < absExponent; i++) {
result *= base;
}
return 1/result;
}
}
}