题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
本题非常简单,是典型的用递归可以求解的问题。
但是实际运行,需要考虑多种情况,比如底数为0、幂为负数,以及要关注递归的结束条件。
- 判断底数是否为0, 若为0, 直接返回结果0;
- 判断幂是否为负数,若为负数,则返回求解 底数的倒数的 正幂 的结果;
- 判断幂是否为0,这是递归的结束条件;
- 上面条件都没有结束的情况下,返回子问题递归求解。
题解
public class Solution {
public double Power(double base, int exponent) {
if (base == 0)
return 0;
if (exponent < 0)
return Power(1/base, - exponent);
if (exponent == 0)
return 1;
return base*Power(base, exponent - 1);
}
}
反思
由于问题简单,没有全面考虑,反而调试好几次才将几种情况考虑完全。