Java内的递归简述

在这里插入图片描述
递归的白话解释就是自己调用本身,下面使用一个小案例来解释递归的流程,使用递归实现5的阶乘
5!=5x4x3x2x1

{

    public static void main(String[] args) {
        System.out.println(f(5));
    }

    public static int f(int n){

        if(n == 1){
            return 1;
        }else {
            return n*f(n-1);
        }

    }
}

分析一下递归的调用流程
在这里插入图片描述
在方法执行开始,判断不为1,则继续调用f(4),f(4)调用f(3),就这样一直到f(1)返回1,然后依次的计算出f(5)的结果。这里是用到了计算机栈的一个概念,一开始是将执行的方法一个一个压入到栈中,待到最后的方法得出了结果后再依次的出栈。

小结:
递归是一种思想,但他并不是一个优秀的算法,递归的次数越多越消耗计算机的内存,直至栈溢出,在遇到需要递归次数较多的时候建议不要使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值