千家信息网

Java中的递归方法怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Java中的递归方法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!递归方法定义本身调用方法本身的现
千家信息网最后更新 2026年11月03日Java中的递归方法怎么用

小编给大家分享一下Java中的递归方法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    递归

    方法定义本身调用方法本身的现象叫做递归

    在这之前我们学的东西:例如StringBuffer.append().append().append()这个不叫递归。这个叫方法的连续调用Math.max(Math.max(a,b),c)也不是递归,那这些是什么呢?这些是方法的调用。

    那什么是递归呢?

    举例:

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    。。。。。。。。。。。。。。。。。。。。。。庙不在了,递归结束。

    举例:

    学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃

    娶不到媳妇,生不了娃,递归结束。

    递归的注意事项:

    递归一定要有一个出口,结束条件,否则就是死循环递归的次数不能太多,否则就会发生内存溢出构造方法不能使用递归

    案例一

    参考代码:

    public class RecursionDemo1 {    public static void main(String[] args) {        show(10);    }     private static void show(int i) {        //定义结束条件        if (i<0){            System.out.println("结束循环");        }else {            System.out.print(i + "\t");            show(--i);        }    } }

    输出结果:

    10 9 8 7 6 5 4 3 2 1 0 结束循环

    递归求阶乘

    5的阶乘:

    递归求阶乘:

    5!= 5*4*3*2*1 = 120

    = 5*4!

    = 5*4*3!

    = 5*4*3*2!

    = 5*4*3*2*1!

    不使用递归实现阶乘

    参考代码:

    /*        递归求阶乘:            5!= 5*4*3*2*1 = 120               = 5*4!               = 5*4*3!               = 5*4*3*2!               = 5*4*3*2*1! */public class RecursionDemo2 {    public static void main(String[] args) {        //不使用递归的做法        int result = 1;        for (int i = 2; i<=5; i++){            result = result * i;        }        System.out.println("5的阶乘是:" + result);    }}

    输出结果:

    5的阶乘是:120

    使用递归实现阶乘

    递归的实现思想:
    1、结束条件:
    if(i==1){return 1}

    2、寻找规律:
    if(i!=1){
    return i * recursionFun(i-1);
    }

    参考代码:

    /*        递归求阶乘:            5!= 5*4*3*2*1 = 120               = 5*4!               = 5*4*3!               = 5*4*3*2!               = 5*4*3*2*1! */public class RecursionDemo3 {    public static void main(String[] args) {         System.out.println(recursionFun(5));     }     private static int recursionFun(int i) {         if (i==1){            return 1;        }else {            //5 * recursionFun(4)            //5 * 4 * recursionFun(3)            //5 * 4 * 3 * recursionFun(2)            //5 * 4 * 3 * 2 * recursionFun(1)            //5 * 4 * 3 * 2 * 1            return i * recursionFun(i-1);        }    }}

    输出结果:

    120

    澳大利亚不死神兔(斐波那契数列)

    有一对兔子,从出生第三个月开始,每个月都生一对兔子, 小兔子长到三个月后每个月又生一对兔子,假设这些兔子都不会死, 问:20个月,又多少对兔子?

    找规律:


    月 兔子对数

    1 1

    2 1

    3 2

    4 3

    5 5

    6 8

    7 13

    ...


    由此可见,兔子的对数数量是:

    1、1、2、3、5、8、13、21...


    发现的规律是:

    1、从第三项开始,每一项都是前两项之和

    2、说明每一项的前两项的数据是已知的

    如何实现呢?

    1、数组方式实现

    2、基本变量实现

    3、递归方式实现

    使用数组实现

    参考代码:

    public class RecursionDemo4 {    public static void main(String[] args) {        //使用数组实现        int[] arr = new int[20];        arr[0] = 1;        arr[1] = 1;         for (int i =2 ;i < arr.length;i++){            arr[i] = arr[i-2] + arr[i -1];        }        System.out.println("第20个月的兔子对数为:" + arr[19]);    }}

    输出结果:

    第20个月的兔子对数为:6765

    使用递归实现

    参考代码:

    public class RecursionDemo5 {    public static void main(String[] args) {         System.out.println("第20个月的兔子对数为:" + ribbateFibonacci(20));     }     private static int ribbateFibonacci(int month) {         if (month == 1 || month ==2 ){            return 1;        }else {            return ribbateFibonacci(month-1) +  ribbateFibonacci(month-2);        }    }}

    输出结果:

    第20个月的兔子对数为:6765

    以上是"Java中的递归方法怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    递归 兔子 和尚 媳妇 学习 就业 阶乘 故事 方法 内容 对数 参考 代码 结果 高薪 高新 输出 数组 条件 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 北京互联网科技有限公司 小马过河互联网科技 菲比寻常互联网科技 互联网科技大会 互联网科技宣传片 美国互联网前沿科技 联恩商钥互联网科技有限公司 承德科技产业互联网发展 湖南一路畅行互联网科技 中国互联网十大科技股排名 无锡工业互联网科技有限公司 皮皮虾互联网科技有限公司 富国互联网金融科技混合基金 工业互联网科技创业 西安有哪些互联网高科技企业 互联网公司属于科技吗 艺电能源互联网科技有限公司招聘 恒生互联网科技趋势 武汉亿视互联网科技有限公司 厦门中拓互联网络科技有限公司 睿民互联网科技 互联网金融和金融科技 中国科技互联网公司收入 港股科技和互联网 消费医药和互联网科技 乌鲁木齐新华智原互联网科技学校 保险科技服务互联网营销体系 国大互联网教育科技有限公司薪资 数字科技和互联网金融哪个好
    0