题目:
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
第一思路:
直接利用for循环,循环exponent次。
代码:
public double Power(double base, int exponent){
double result = 1.0;
for (int i = 1; i <= exponent; i++) {
result *= base;
}
return result;
}
分析:
上面的代码适合情况是指数为正数的情况。 没有考虑指数小于1的情况即指数为0和指数为负数的情况以及base为0的情况。因为题目说的是数值的整数次方,整数包括正数、0、负数。
鲁棒性比较好的代码:
// 指数为正数的情况
public double powerWithExponent(double base, int exponent) {
double result = 1.0;
for (int i = 1; i <= exponent; i++) {
result *= base;
}
return result;
}
// 数值比较的方法
public boolean equal(double num1, double num2) {
if (Math.abs(num1 - num2) < 0.0000001) {
retur