Java方法之递归思想

学习 Demo

递归【基于栈】:A方法调用A方法(自己调用自己)
递归结构包括两部分:
1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
2. 递归体:什么时候需要调用自身方法。
注:适用于计算量小的情况  耗时  影响性能

在这里插入图片描述

码上行动

代码如下(示例):

package TestDemo;

/**
 * 递归【基于栈】:A方法调用A方法(自己调用自己)
 * 递归结构包括两部分:
 * 1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
 * 2. 递归体:什么时候需要调用自身方法。
 * 实例:阶乘的计算【适用于计算量小的情况】耗时 影响性能
 */
public class Test4 {

    /*
    阶乘:n!=1×2×3×...×(n-1)×n
    阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
        1! 1
        2! 2*1
        3! 3*2*1
        5! 5*4*3*2*1
        0的阶乘是1,1的阶乘是1本身
     */
    public static void main(String[] args) {
        System.out.println(f(5));
    }

    /*
        递归思想
        2!      2 * f(1)    2 * 1
        3!      3 * f(2)    3 * 2 * f(1)    3 * 2 * 1
     */
    public static int f(int n){
        if (n == 1) {
            return 1;
        }else{
            return n * f(n-1);
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无明之徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值