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 项的值

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

相关推荐
Hello.Reader2 分钟前
Flink ML OneHotEncoder 把类别索引变成稀疏 one-hot 向量
python·机器学习·flink
小灰灰搞电子4 分钟前
C++ 文件操作详解
开发语言·c++·文件操作
我想吃烤肉肉7 分钟前
关于Python的垃圾回收
python
xcLeigh9 分钟前
金融数据实时行情API使用教程:如何跨市场查询多品种的实时行情数据
python·websocket·金融·股票·api·期货·外汇
让学习成为一种生活方式10 分钟前
如何根据过滤的pep序列进一步过滤gff3文件--python015
开发语言·人工智能·python
heartbeat..15 分钟前
Java NIO 详解(Channel+Buffer+Selector)
java·开发语言·文件·nio
云栖梦泽15 分钟前
易语言开发者的知识沉淀与生态传承:从“用会”到“传好”
开发语言
2401_8370885017 分钟前
Hot 146 LRU Cache 实现详解
java·开发语言
Trouvaille ~19 分钟前
【C++篇】智能指针详解(一):从问题到解决方案
开发语言·c++·c++11·类和对象·智能指针·raii
qijiabao411319 分钟前
深度学习|可变形卷积DCNv3编译安装
人工智能·python·深度学习·机器学习·cuda