【Python】递归算法
定义
递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。
思想
函数调用函数本身,直到不能调用为止
注意事项
- 基本情况用于保证程序调用及时返回,不在继续递归,保证了程序可终止。
- 递推关系,可将所有其他情况拆分到基本案例。
- 递推关系: 一个问题的结果与其子问题的结果之间的关系。
- 基本情况: 不需要进一步的递归调用就可以直接计算答案的情况。 它们往往是问题被减少到最小规模的情况,也就是如果我们认为将问题划分为子问题是一种自上而下的方式的最下层
使用情况
抓住问题本身是否可以通过层层拆解到最小粒度来得解
示例
斐波那契数列-递归
def feib(n): if n <= 1: return n else: return (feib(n-1) + feib(n-2)) if __name__ == "__main__": inu = int(input("输入斐波那契数列位数:")) if inu < 0: print("输入正整数") else: for i in range(inu): print(feib(i))
执行结果
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报