题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
按照常规思路解题,但是做完题后发现还是有很多需要注意的地方的。
①注意次幂的正负数还有 0
②当 base 为 0 且 exponent 为负数时不存在
③浮点数与 0 比较是在较小的范围内进行的,不可以直接用 base == 0 比较
④计算结果不在 double 范围内
以下代码是通过的,但是没有完全考虑到上述问题。仅供参考
public class Solution {
public double Power(double base, int exponent) {
double ans = base;
boolean isNeg = exponent < 0 ? true : false;
exponent = exponent < 0 ? -exponent : exponent;
for(int i=2; i<=exponent; i++){
ans *= base;
}
if(exponent == 0)
return 1.0;
else if(isNeg == true)
return 1.0/ans;
else
return ans;
}
}
如有错误或者不合理的地方,敬请指正~
加油!!