Java-方法的递归调用

本文介绍了递归方法的调用原理,通过求解阶乘问题展示如何找到递归的规律和出口,防止死循环并避免栈内存溢出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法的递归调用

理解:方法调用方法自身

注意:

1.找到规律(什么时候调用自己)
2.找到出口(什么时候跳出自我调用,否则会成为一个死循环状态)
注意:因为每调用一次方法,栈内存会开辟一块空间,不找到出口,会导致栈内存溢出

案例:

/**需求:设计一个方法,传入int类型的数字n,求n的阶乘
		分析:
			5! = 1*2*3*4*5 -> 5! = 4! * 5
			4! = 1*2*3*4   -> 4! = 3! * 4
			3! = 1*2*3	   -> 3! = 2! * 3
			2! = 1*2	   -> 2! = 1! * 2
			1! = 1		   -> 1! = 1
			找规律:n! = (n-1)! * n;
			找出口:1! = 1
*/
	public class Test02{
        public static void main(String [] args){
           System.out.println(method(5));
        }
        
        //设计方法
        public static int method(int n){  //传入参数5
		if(n==1){  //这里就是出口,一旦n到达1,就开始返回数据(回溯)
			return 1;
		}else{
			return method(n-1)*n; //如果当前n不到1,那就去求n-1的阶乘,再乘以n就得到当前n的阶乘
		}
	}

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值