算法--3.递归

递归的复习

递归的特点

  1. 调用自身
  2. 结束条件
示例如下
def func(x):
	if x>0:
		print(x)
		func(x-1)

这里如果调用func()方法,并传参为3,即func(3),那么输出就是:
3
2
1
接下来画一个图来解释函数的调用执行,这里的结束条件就是x<=0,所以只会输出三次:
递归函数的执行
那如果如下所示的递归函数,结果的输出又是什么呢?会和上一个示例的结果输出一致吗?

def func(x):
	if x>0:
		func(x-1)
		print(x)

在这里我先不写答案,先画一个图来帮助理解,这样也能让我自己加深理解,如下图:
在这里插入图片描述
结果输出是:
1
2
3
解析:这里是调用函数func(x),并传参3,当x是3时,进入判断并再次调用func(x-1),此时x为2,再次进入判断并再次调用func(x-1),此时x为1,再次进入判断,并再次调用func(x-1),此时x为0,不满足判断条件,会退出执行,那么上一步的调用会先输出,再上一步调用会接着输出,第一步执行的调用会最后输出,那么根据上述的调用可以看出,先输出打印的是1,然后是2,最后是3.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值