迷宫问题(回溯)

img

概念

简单呐的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时让代码变得简洁.

案例-递归调用机制

打印问题

  1. public static void test(int n){
  2. if(n>2){
  3. test(n-1);
  4. }
  5. System.out.println("n="+n);
  6. }

哔哩哔哩动画
img
递归调用规则:

  1. 当程序执行到一个方法时,就会开辟一个独立的空间(栈)

img
img
img
img

阶乘问题

  1. //阶乘问题
  2. public static int factorial(int n) {
  3. if (n == 1) {
  4. return 1;
  5. } else {
  6. return factorial(n - 1) * n; // 1 * 2 * 3
  7. }
  8. }

斐波那契数列

这个也是可以用这个 递归实现的
经典案例