递归问题处理模板

1.定义递归函数:确定函数名,递归的参数信息
2.确定递归的终止条件
3.进行递归中的逻辑处理
4.进入更下一层的递归
5.重置一些状态(非必要,一般在解决排列组合的递归时需要重置状态)
image.png
递归处理的示例:求解x的n次幂

  1. private double computePower(double x, int n) {
  2. //处理终止条件
  3. if (n == 0) {
  4. return 1;
  5. }
  6. //处理变量
  7. int m = n/2;
  8. //递归处理
  9. double y = computePower(x, m);
  10. //后续处理
  11. if (n % 2 == 0) {
  12. return y*y;
  13. } else {
  14. return y*y*x;
  15. }
  16. }