前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《python算法教程》Day3 - 递归递归简介代码示例

《python算法教程》Day3 - 递归递归简介代码示例

作者头像
billyang916
发布2018-05-02 10:23:51
7080
发布2018-05-02 10:23:51
举报
文章被收录于专栏:python读书笔记python读书笔记

这是《python算法教程》的第3篇读书笔记。由于之前看书的效率太低了,所以拖了一个多星期才写第三篇读书笔记。这次主要简单总结一下递归(recursion)。

递归简介

递归是编程中一种常见的算法,他的主要特征是函数运行过程中会调用函数自己,呈现出同一个函数层层套嵌的现象。 之所以会使用递归,是因为需要解决的问题可通过分解为与原问题相同但规模较小子问题来解决。同时规模较小的子问题可通过较为简单的代码来解决。 上述解决问题的思路则正可通过递归来实现。但要注意的是: 1.递归算法的开销较大。若开销较小的算法能替代递归,则建议使用开销较小的算法。 2.为避免递归算法中,函数被无限次调用,陷入死循环,应在函数中设置结束条件。

代码示例

以下是使用递归来对1至100之间的自然数进行求和的代码。

代码语言:javascript
复制
#递归实现求和
#start为起始数字,end为结束数字,step为步长
def recursionSum(start,end,step):
    s=0
    #结束条件
    if start>end:
        return 0
    #递归操作
    s=start+recursionSum(start+step,end,step)
    return s

s=recursionSum(1,100,1)
print(s)

以下是通过循环的求和代码

代码语言:javascript
复制
#通过循环结构实现求和
def cycleSum(start,end,step):
    s=0
    for i in range(start,end+1,step):
        s=s+i
    return s

s=cycleSum(1,100,1)
print(s)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.04.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 递归简介
  • 代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档