【算法】递归的应用

目录一、What2个重要条件:举例:二、How实例一、实例二、一、What递归算法是一种直接或间接调用自身函数或者方法的算法。实质是把问题分解成规模小的同类问题的子问题,然后递归调用方法来表示问题的解。我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。可惜,第二个词里仍然有不懂的词,于是查第三个词...
摘要由CSDN通过智能技术生成

目录

一、What

2个重要条件:

举例:

二、How

实例一、

实例二、


一、What

递归算法是一种直接或间接调用自身函数或者方法的算法。实质是把问题分解成规模小的同类问题的子问题,然后递归调用方法来表示问题的解。

我们可以把” 递归 “比喻成 “查字典 “,当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词。可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。(摘自知乎的一个回答)

2个重要条件:

  1.调用自身:有反复执行的过程

  2.递归出口:有跳出反复执行过程的条件

举例:

数学上计算阶乘的定义如下:

    public Integer fact(Integer n){
        if(n == 0){
            return 1;
        }else {
            return n*fact(n-1);
        }
    }

    @Test
    public void digui(){
        Integer sum = this.fact(5);
        System.out.println(sum); // 运行结果为:120
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值