首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

巨简单!弄懂递归的原理-带括号加法题而已

编程知识
2024年08月10日 14:34

递归的讲解一大堆,想要明白其中关键又不得其要,让人头疼。我想写一种让我自己让你能简单理解,直扼要命的方式理解“代码”与“方法”之间的联系

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)(≥ 2,∈ 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

From:https://www.cnblogs.com/huahua-diqiu/p/18352352
本文地址: http://www.shuzixingkong.net/article/968
0评论
提交 加载更多评论
其他文章 一款.NET开发的AI无损放大工具
前言 今天大姚给大家分享一款由.NET开源(GPL-3.0 license)、基于腾讯ARC Lab提供的Real-ESRGAN模型开发的AI无损放大工具:AI-Lossless-Zoomer。 Real-ESRGAN模型专注于人像和动漫图片的高质量无损放大。 项目功能 支持多线程处理、批量图片处理
一款.NET开发的AI无损放大工具 一款.NET开发的AI无损放大工具 一款.NET开发的AI无损放大工具
Python 潮流周刊#64:Python 的函数调用还很慢么?(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 分享了 11 篇文章,13 个开源项目,1 则音视频,全文 2000 字。 以下是
win+jenkins+git+allure+tomcat+jdk部署(万人坑)
万人坑:之所以叫万人坑,是一些网站真的是非常非常非常坑,且不说按照他们的方法一次都没成功,还遇到了各种千奇百怪的问题,浪费了本人3.1415926h的时间,真想给他们竖起一个超大号的倒拇指。下面开始踩坑之路! 一.本地环境 jdk:1.8 tomcat:8.5.59 jenkins:2.264 gi
win+jenkins+git+allure+tomcat+jdk部署(万人坑) win+jenkins+git+allure+tomcat+jdk部署(万人坑) win+jenkins+git+allure+tomcat+jdk部署(万人坑)
为了落地DDD,我是这样“PUA”大家的
本文书接上回《先有鸡还是先有蛋?这是领域驱动设计落地最大的困局》 https://mp.weixin.qq.com/s/lzAZXgchCg_VyLmyo2N18Q 故事背景 2023年,我加入了一个全新的团队,担任技术Leader的角色,可以算做是“空降”吧,至今已经一年有余的时间了。到目前为止,
为了落地DDD,我是这样“PUA”大家的 为了落地DDD,我是这样“PUA”大家的 为了落地DDD,我是这样“PUA”大家的
# games101 作业3分析 详解bump mapping
games101 作业3分析 详解bump mapping 代码分析 整体代码结构 其实变化还是不大 主要是引入了vertexshader(什么都没做) 与 fragmentshader(使用了不同的着色方法 直接用法线作为rgb 使用blingphong光照模型 纹理贴图 bumpmapping
# games101 作业3分析 详解bump mapping # games101 作业3分析 详解bump mapping # games101 作业3分析 详解bump mapping
Java IO 流详解
概述 流是一个抽象的概念,代表了数据的无结构化传递。流的本质是数据在不同设备之间的传输。在 Java 中,数据的读取和写入都是以流的方式进行的 在 Java 中,根据数据流向的不同,可以将流分为输入(Input)流和输出(Output)流。根据单位的不同,可以将流分为字节流和字符流。根据等级的不同,
[rCore学习笔记 024]多道程序与协作式调度
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 本节重点 主要是对&#160;任务&#160;的概念进行进一步扩展和延伸:形成 任务运行状态:任务从开始到
[rCore学习笔记 024]多道程序与协作式调度 [rCore学习笔记 024]多道程序与协作式调度 [rCore学习笔记 024]多道程序与协作式调度
使用 extract_sqlaudit_proc 存过分析ob性能问题
最近在某个金融单位核心系统项目做ob的性能压测,期间遇到不少问题,现场两周了每天都加班到凌晨一两点左右,真的是累死。&#129314;&#129314; 我其实进ob之前有心理预期,卷就卷吧,八九点下班也能接受,没想到真到了干项目的情况下,天天凌晨下班,真怕不知道啥时候会猝死。&#128514;&#
使用 extract_sqlaudit_proc 存过分析ob性能问题 使用 extract_sqlaudit_proc 存过分析ob性能问题 使用 extract_sqlaudit_proc 存过分析ob性能问题