Python 函数递归

以下是一个使用递归计算阶乘的 Python 函数示例 :

javascript 复制代码
 '''
应用场景:
1. 动态规划问题:在一些需要逐步求解子问题并利用其结果的动态规划场景中,递归可以帮助直观地表达问题的分解和求解过程。
2. 遍历具有递归结构的数据:如递归定义的二叉树、链表等数据结构的遍历和操作。
3. 数学模型和算法:除了斐波那契数列,还有很多数学模型和算法可以用递归简洁地表示和求解。

代码注释:
'''

def fibonacci(n):
    """
    这个函数使用递归方式计算斐波那契数列的第 n 项

    参数:
    n (int): 要计算的斐波那契数列的索引,n 从 0 开始

    返回:
    int: 斐波那契数列第 n 项的值
    """
    if n <= 0:  # 处理边界情况,斐波那契数列的第 0 项为 0
        return 0
    elif n == 1:  # 斐波那契数列的第 1 项为 1
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)  # 递归调用,通过前两项计算当前项

# 测试
print(fibonacci(5))  # 输出斐波那契数列第 5 项的值
print(fibonacci(10))  # 输出斐波那契数列第 10 项的值

以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!

相关推荐
安冬的码畜日常10 分钟前
【AI 加持下的 Python 编程实战 2_13】第九章:繁琐任务的自动化(中)——自动批量合并 PDF 文档
人工智能·python·自动化·ai编程·ai辅助编程
枫叶梨花15 分钟前
使用Go语言获取Windows系统信息:从CPU到电池的全维度监控
开发语言·windows·golang
C_Liu_20 分钟前
从C语言到C++:拥抱面向对象编程的全新世界
c语言·开发语言·c++
哈基咩23 分钟前
Go 语言模糊测试 (Fuzz Testing) 深度解析与实践
开发语言·后端·golang
元气少女小圆丶25 分钟前
Mirror学习笔记
java·开发语言·学习
lly20240626 分钟前
Perl 面向对象编程深入解析
开发语言
瓦特what?32 分钟前
C + +
c语言·开发语言·c++·经验分享·笔记·算法·程序员创富
@十八子德月生33 分钟前
第三阶段—8天Python从入门到精通【itheima】-143节(pyspark实战——数据计算——flatmap方法)
大数据·开发语言·python·数据分析·pyspark·好好学习,天天向上·question answer
孫治AllenSun36 分钟前
【Java】使用模板方法模式设计EasyExcel批量导入导出
java·python·模板方法模式
爱编码的程序员37 分钟前
python 处理json、excel、然后将内容转化为DSL语句,适用于数据处理(实用版)
人工智能·python·ai·json·excel·数据处理·dsl