题目描述:给定一个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;
}
}
}

本文详细阐述了如何实现双精度浮点数的幂运算,包括处理正数、零、负数幂的情况,并讨论了错误处理策略,如输入验证、返回值及异常情况。
483

被折叠的 条评论
为什么被折叠?



