递归函数与数列问题

我们在中学阶段就遇到过数列通项问题,通项科An可写作:
An=Sn-Sn-1(Sn表示前n项的和)
移项后,可表示为:
Sn=Sn-1+An
在这里,以一个数列的前3项为例:
S3=S2+A3
S2=S1+A2
即:S3=S1+A2+A3

将Sn看做一个函数,An看做一个形式参数

那么,任何Sn都可以看成S1+参数项。参数项已知,知道S1就可求Sn。S1就是第一项,我们把具体问题中第一项的值赋给S1即可。

举个例子,利用递归函数,求1至n间整数的和

def get_sum(n):if n == 1:return 1return get_sum(n - 1) + n

在这个问题中,第一项的值明显为1,因此n=1时,返回1
当然,也可写n=0,返回0

再举例,利用递归函数,求1至n间整数的阶乘

def product(n):if n == 0:return 1result = product(n - 1) * nreturn result

求阶乘问题中,第一项也为1,但是,这里n=0时,不可return 0 了。因为0的阶乘仍然是1,所以n=0,仍然rerurn 1。
在递归函数中,要跳出这个套娃过程,应使用return语句,而不是break语句,因为break用以跳出while、for循环。

Python学习日记-递归函数相关推荐

  1. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  2. python学习日记(第一周)

    python学习日记(第一周) 前言: 无论出于什么目的,学个程序语言吧.之前学过一点点基础语法,然后就搁置了两年,日记仅作为个人记录,有问题还望不吝赐教 其实这玩意儿应该每次学一部分记录一部分的,好 ...

  3. Python学习日记-pandas操作学习

    Python学习日记-pandas模块学习 根据需求筛选数据 绘制柱状图-利用pandas绘制 绘制柱状图-利用matplotlib绘制 绘制柱状图-两组数据比较 绘制柱状图-叠加柱状图 绘制饼状图 ...

  4. 菜菜的Python学习日记 | Python类实验代码分享

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 Python类实验代码分享 编写程序,实现以下功能. (1)创建员工类Employee,属性有姓名name.能力值ability ...

  5. 菜菜的Python学习日记 | 正则表达式你必须了解的知识点

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 文章目录 常用规则 Python对正则表达式的支持 常用规则 符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat ...

  6. python学习日记2-3周

    python学习日记2-3周 怠惰怠惰 improt 导入 import phone.apple.iphone6 import phone.apple.iphone7 import phone.sam ...

  7. Python学习日记——罗马数字转整数

    Python学习日记004--罗马数字转整数 题目来源:LeetCode题库--罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 ...

  8. [Python学习日记] 文件与文件系统(一)

    [Python学习日记] 文件与文件系统(一) 目录 Python3 File(文件) 方法 open() 方法 file 对象 目录 Python3 File(文件) 方法 open() 方法 Py ...

  9. Python学习日记:求解由四个数字组成的四位数个数

    看见这个问题时,我们很容易想到我们学习过的排列组合知识点:显然用四个数字组成四位数(这些四位数互不相同)就是一个关于排列的问题:用数学的方法可以知道.那么怎么用Python运行解决呢?这就是本次学习日 ...

最新文章

  1. Http 请求头中的 Proxy-Connection
  2. 搞垮服务的20条原则
  3. liunx下的DNS配置
  4. Exchange 2016 (登陸賬號匯出電子郵件地址)
  5. Python字符串介绍
  6. P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
  7. 可以批量修改文件名、文件后缀的实用工具
  8. php zitian虚拟主机配置_虚拟主机的发展
  9. struts2:表单标签
  10. Linux:管线命令
  11. 算法(0)—— 打造一个C开发库
  12. 读Zepto源码之集合操作
  13. 2022年(上半年)信息系统项目管理师考试-综合知识真题及解析(一)
  14. 微服务架构如何进行解耦?
  15. gamma原理及快速实现算法(C/C++)
  16. 编程语言的自举之路——从机器码到高级语言
  17. 一位CEO给员工的防疫指南:在不确定的世界强悍地活
  18. 自动取款机 UI开发总结
  19. matlab中电压幅值不对,基于MATLAB的SPWM电压型逆变器的仿真与分析
  20. STM32F103RET6 功能引脚

热门文章

  1. 企业管理各项工作的一般规律-PDCA循环
  2. bnd workspace属性文件
  3. android 11.0 12.0控制屏幕亮屏和灭屏操作
  4. vivo开发者大会将发Origin OS新系统,跻身安卓定制UI第一梯队
  5. 王老吉地震营销的网络推广
  6. 流体力学有限元法(三)
  7. Crosswalk环境搭建
  8. 查询和删除表中重复数据sql语句
  9. 微信小程序对nick_name进行base64编码操作java
  10. MacOS(苹果电脑苹果系统)连接京瓷300i 打印机