简单易懂的递归

    递归,简单地来说就是在程序执行的时候调用自己本身,但是一定要有一个终止的条件。下面又到了子月讲故事的阶段了,想必大家都看过盗梦空间吧,这就是一个递归的体现,首先我们先对应一个要点,一重梦境下又进入二重梦境,二重梦境下又进入三重梦境。这对应的不就是程序在不断地调用本身嘛!

第二个要点,一定要有一个结束的条件,也就是递归出口。各位可还记得男主手中的陀螺图腾吗?这个对应的就是程序中的结束判断条件哦!

​
package zuoye;

public class DiGui {
public static void main(String [] args) {
	System.out.println(num(5));
}
public static int num(int n) {
	if(n == 1) {
		return n=1;
	}else {
		return n * num(n-1);
	}
}
}

​

这里大家需要注意一个问题,就是这个判断结束条件的位置。一定要写在前面,如果写在后面的话,它就会一直无限的循环调用下去。

在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。(这个就像进入的梦境层数太多,人的意识越容易出不来,也就是潜意识边缘。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值