Python中递归函数的理解与算法详解

本文介绍了Python中的递归函数,包括递归概念、递归计算阶乘的实例,强调了递归函数的结束条件和递推关系。通过代码示例解释了递归函数的return操作,并分析了递归函数在计算阶乘过程中可能出现的错误及其解决方案。

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

递归函数

1、递归的概念

递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。
所以递归要有两个要素,结束条件与递推关系

2、借助动图理解递归

类似于这张图,一直在循环往复的重复着同一件事

3、计算n的阶乘

以十的阶乘为例 10!=10×9×8×7×6×5×4×3×2×1
根据公式,很容易发现规律即n=n×n-1
当n=1的时候要结束循环并输出结果。

1.用循环来计算阶乘

国际惯例,先用我们熟知的循环来计算10!

#!/usr/bin/python3
s=1
for i in range(1,11):
	s *=i
print(s)
2.递归函数如何计算n的阶乘

同理,利用递归函来计算阶乘数同样需要一个结束条件,当n=1时返回结果。
代码实现如下:

   def factor(n):
    	if n == 1:
    		return 1
    	return n*factor(n-1)
    num = factor
    print(num)

助解示意图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值