首页 > 编程语言 >Python基础入门学习笔记 023 递归:这帮小兔崽子

Python基础入门学习笔记 023 递归:这帮小兔崽子

时间:2023-08-23 09:55:06浏览次数:49  
标签:return 递归 Python 兔崽子 result 023 fab n2

坑爹的兔子

斐波那契数列的迭代实现

我们都知道兔子繁殖能力是惊人的,如下图:

 我们可以用数学函数来定义:

 课间练习:假设我们需要求出经历了20个月后,总共有多少对小兔崽子?(迭代 vs 递归)

 1 def fab(n):
 2     n1 = 1
 3     n2 = 1
 4     n3 = 1
 5 
 6     if n < 1:
 7         print('输入有误!')
 8         return -1
 9 
10     while (n-2) > 0:
11         n3 = n2 + n1
12         n1 = n2
13         n2 = n3
14         n -= 1
15     
16     return n3
17 
18 result = fab(20)
19 if result != -1:
20     print('总共有%d对小兔崽子诞生!' % result)

 斐波那契数列的递归实现

 递归实现(递归计算时间将拉长)

 1 def fab(n):
 2     if n < 1:
 3         print('输入有误!')
 4         return -1
 5 
 6     if n == 1 or n == 2:
 7         return 1
 8     else:
 9         return fab(n-1) + fab(n-2)
10 
11 result = fab(35)
12 if result != -1:
13     print('总共有%d对小兔崽子诞生!' % result)

 注:迭代计算时间远比递归少,因为递归要循环出入栈

标签:return,递归,Python,兔崽子,result,023,fab,n2
From: https://www.cnblogs.com/ybqjymy/p/17650335.html

相关文章

  • Python基础入门学习笔记 015字符串:格式化
     字符串格式化符号含义 将ASCII码97对应的字符输出 格式化整数 格式化操作符辅助命令5表示输出为五位数Python的转义字符及其含义......
  • Python基础入门学习笔记 016 序列!序列!
    •列表、元组和字符串的共同点–都可以通过索引得到每一个元素–默认索引值总是从0开始–可以通过分片的方法得到一个范围内的元素的集合–有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)使用list方法 元组转换为列表 max()返回序列或者参数集合中的最大......
  • Python基础入门学习笔记 018 函数:灵活即强大
    形参和实参>>>defMyFirstFunction(name):'函数定义过程中的name是叫形参'#因为Ta只是一个形式,表示占据一个参数位置print('传递进来的'+name+'叫做实参,因为Ta是具体的参数值!')>>>MyFirstFunction('小甲鱼')传递进来的小甲鱼叫做实参,因为Ta是具体的参数值!关键字参数......
  • Python 调试工具PDB的基本使用
    用法pdb工具是Python自带的调试工具,可以在命令行下进行代码调试。使用示例:importpdbnum_a=1num_b=2pdb.set_trace()sum=num_a+num_b运行效果如图:常见命令break或b:设置断点continue或c:继续执行程序list或l:查看当前行的代码段step或s:进入函数......
  • Python基础入门学习笔记 011列表:一个打了激素的数组2
    从列表中获取元素•跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表索引值是从 0 开始的。 从列表删除元素 remove()函数表示从列表中删除某个元素 del()函数也表示从列表中删除某个元素 pop()函数从列表中取出最后一个元素列表分片(Slice)•......
  • Python基础入门学习笔记 012列表:一个打了激素的数组3
    列表的一些常用操作符•比较操作符 •逻辑操作符 •连接操作符 •重复操作符 •成员关系操作符 关于分片“拷贝”概念的补充 >>>dir(list)可查看所有列表的操作函数 count()函数可计算列表中相同元素个数 index()函数可索引列表元素 reverse()将列......
  • Python基础入门学习笔记 008 了不起的分支和循环2
    •现在小甲鱼来考考大家:–按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。1score=int(input('请输入一个分数:'))2if100>=score>=90:3print('A')4elif90>score>=80:5print('B')......
  • Python基础入门学习笔记 009 了不起的分支和循环3
    while循环while条件:循环体for循环•虽然说Python是由C语言编写而来的,但是Ta的for循环跟C语言的for循环不太一样,Python的for循环显得更为智能和强大!•语法:for目标in表达式:循环体 每次取FishC中一个字符及空格输出range()函数•语法:range([strat],[stop]......
  • Python基础入门学习笔记 000 愉快的开始
    python跨平台。应用范围:操作系统、WEB、3D动画、企业应用、云计算大家可以学到什么:Python3的所有常用语法、面向对象编程思维、运用模块进行编程、游戏编程、计算机仿真Python是脚本语言脚本语言(Scriptinglanguage)是电脑编程语言,因此也能让开发者藉以编写出让电......
  • Python基础入门学习笔记 001 我和Python的第一次亲密接触
    从IDLE启动Python•IDLE是一个PythonShell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!•我们看到>>>这个提示符,Ta的含义是告诉你,Python已经准备好了,在等着你键入Python指令呢。•好了,大家试试在IDLE里输入:>>>print(“Ilovefishc.com”) ......