首页 > 极客资料 博客日记
巨简单!弄懂递归的原理-带括号加法题而已
2024-08-10 16:00:05极客资料围观27次
极客之家推荐巨简单!弄懂递归的原理-带括号加法题而已这篇文章给大家,欢迎收藏极客之家享受知识的乐趣
递归的讲解一大堆,想要明白其中关键又不得其要,让人头疼。我想写一种让我自己让你能简单理解,直扼要命的方式理解“代码”与“方法”之间的联系。
1.问题:斐波那契(求和运算)
求4之前的数的总和
2.解决问题的方法
斐波那契数列示例(数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以 递推 的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*))
简单理解 公式可写出,总和= (1+ ( 2+( 3+4)))
3.代码实现
3.1递归代码实现
1 def digui(n): 2 if n == 0: # 基准情况(边界条件) 3 return 0 4 else: 5 return n + digui(n-1) # 递归步骤,函数:递,return:归 6 print(digui(4))
代码结果输出 :10
“递归”第5行代码这里你把它想成带括号的数学题,有括号先算括号内,直到没有括号,括号内的运算后的值在再与括号外的值运算,如图所示
若是用栈表示这段代码就是这个样子,如图所示
栈的存储顺序:
在每次递归调用的过程中,栈中的内容会是这样的:
1 | | <- 栈顶(Top of Stack) 2 | digui(0) | <- 这个函数执行完毕并返回 0 3 | digui(1) | <- 1 + digui(0) 4 | digui(2) | <- 2 + digui(1) 5 | digui(3) | <- 3 + digui(2) 6 | digui(4) | <- 4 + digui(3)
3.2循环代码实现
1 def xunhuan(n): 2 result = 0 3 for i in range(1, n+1): # 从 1 到 n 进行循环累加 4 result += i 5 return result 6 7 print(xunhuan(4))
代码结果输出 :10
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”