初识递归--基本概念和方法

递归(Recursion)

  1. 定义:方法自己调用自己,每一次调用传入不同的变量。递归有助于编程者解决复杂的问题,同时让代码变得更加简洁
  2. 递归调用规则
  • 当程序执行到一个方法时,就会开辟一个独立的栈空间。
  • 每个空间的数据(局部变量),是相互独立的,不会相互影响,打印问题。独立的局部空间和变量
  • 如果方法中使用的是引用类型的变量,就会共享该引用类型的数据,共用的空间。
  • 递归必须包含推出递归的条件,避免死循环,出现StackOverflowError,栈溢出
  • 当一个方法执行完毕后,或者遇到一个return,就会返回,遵循谁调用就将结果返回给谁。
  1. 递归能够解决的问题
  • 数学问题:死亡八皇后问题,汉诺塔问题,阶乘问题,迷宫问题,球和篮子的拜访问题
  • 各种算法,快排,二分查找,分治算法
  • 将用栈解决的问题,用递归解决更加简洁
  1. 运用递归必需的两个条件
  • 递归终止条件
  • 递归方法体
  • 变量的分类–局部变量和公共变量

基本代码:

public class Recursion1 {
    static int m = 4;
    public static void main(String[] args) {
        System.out.println(add(4));
    }
    public static int add(int n){
        if(n > 1){
            System.out.println(m);
            //此为共享变量,共同操作
            System.out.println(n);
            //局部变量n
            return add(n - 1);
            //上述语句是循环结构
        }else{
            return 1;
            //递归终止条件
        }
发布了19 篇原创文章 · 获赞 3 · 访问量 614

猜你喜欢

转载自blog.csdn.net/Blackoutdragon/article/details/103880135