递归方法:

# 输入整数n,求斐波拉契数列第n个数。
# 思路:
# 递归式算法:
# 利用f(n) = f(n-1) + f(n-2)的特性来进行递归def fn(n):if n==0:return 0if n==1:return 1return fn(n-1)+fn(n-2)print('fn(10):',fn(10),' fn(3):',fn(3),' fn(2):',fn(2))

非递归方法:

     将b赋给a 将(a+b)赋给b b为最终结果
f(0)  f(1) f(2) f(3) f(4)  f(5)...a     b   (a+b)a    ba    b....
def fib(n):
#c表示循环次数 a表示fib(0)=0,b表示fib(1)=1c,a,b=0,0,1if(n==0):b=0while(c<(n-1)):a,b = b,a+bc=c+1print(b)return (b)for x in range(10):fib(x)

如下结果是显示fib(0)到fib(9),如果只需从fib(1)开始,上述代码fib修改为fib(x+1)

0       fib(0)
1       fib(1)
1
2
3
5
8
13
21
34

函数改成generator在循环过程中不断调用yield,就会不断中断。当然要给循环设置一个条件来退出循环,不然就会产生一个无限数列出来。

同样的,把函数改成generator后,我们基本上从来不会用next()来获取下一个返回值,而是直接使用for循环来迭代:

def fib(num):c,a,b=0,0,1#c表示循环次数 a表示fib(0)=0,b表示fib(1)=1if num==0:b=0yield bwhile(c<num):yield ba,b=b,a+b  #t=(a,a+b) a=t(0) b=t(1)c=c+1for x in fib(6):  #输出前6个斐波拉数print(x)                # 1, 1, 2, 3, 5, 8, 13

Python输入整数n,求斐波拉契数列第n个数相关推荐

  1. c语言编程斐波那契前n项,c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)...

    写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include in ...

  2. python(采用属猪输出斐波拉契数列前30个数,每行输出五个数)

    """ 功能:采用属猪输出斐波拉契数列前30个数,每行输出五个数 作者: 时间: """ fid = [1, 1] for i in ran ...

  3. python求斐波那契数列第n个数及前n项和_使用python求斐波那契数列中第n个数的值示例代码...

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...

  4. python编写递归函数、求斐波那契数列_利用Python实现斐波那契数列的方法实例

    今天我们来使用Python实现递归算法求指定位数的斐波那契数列 首先我们得知道斐波那契数列是什么? 斐波那契数列又叫兔子数列 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推 ...

  5. c语言n次方怎么输入_C语言实现斐波拉契数列

    C语言实现斐波拉契数列教程 怎么使用 C 语言实现计算斐波拉契数列的第 N 项的值? C语言实现斐波拉契数列详解 背景知识 斐波那契数列是一组第一位和第二位为 1,从第三位开始,后一位是前两位和的一组 ...

  6. access求斐波拉契数列_打印目录,斐波那契数列的递归与循环,牧场牛数

    实验报告 1 任务概述(任务说明) 1 f(n)=f(n-1)+f(n-2) f(0)=f(1)=1 , 求斐波那契数列第 20 项, 分别用循环和递归的方式, 比较时间效率.提示:可以使用 c 函数 ...

  7. Python案例:格式化输出斐波拉契数列

    文章目录 一.提出任务 二.运行效果 三.实现步骤 1.定义fib(n)函数 2.采用format()函数实现格式化输出 3.采用repr()与rjust()函数实现格式化输出 4.运行程序,查看效果 ...

  8. 写一个函数,输入n,求斐波那契数列的第n项。

    剑指offer--求斐波那契数列第n项. 之前我写过一些递归与非递归的练习,其中包括了斐波那契数列,感兴趣的可以看一下其他例题. https://blog.csdn.net/qq_43606352/a ...

  9. 递归求斐波那契数列第n个数

    斐波那契数列:第一个和第二个是1,从第三个开始每一项都是前两项的和 1 1 2 3 5 8 13 21 34 - 求斐波那契数列的第n项,利用递归思想,除了第一.二位,每一位都是前两项的和.递归函数的 ...

最新文章

  1. sourcetree 回滚
  2. Python 定时任务框架 APScheduler
  3. linux qt应用程序全屏,QT在ubuntu下实现界面全屏,侧边栏隐藏,上边栏隐藏【实例】...
  4. 转-Android Studio *.jar 与 *.aar 的生成与*.aar导入项目方法
  5. GC之七--gc日志分析工具
  6. selenium+unittest自动化测试(二)---浏览器控制及元素定位的方法
  7. SQL使用LIKE匹配
  8. c语言换行用分号代替,go语言换行的地方可以用分号替代吗?
  9. 凯恩斯主义税收思想概述
  10. 使用javaSwing搭建一个简单的聊天室
  11. 2022 第二届中国移动“梧桐杯”大数据应用创新大赛-基于移动大数据的网约车司机识别 线上0.95+ 方案
  12. JAVA程序设计题——英雄对战游戏,定义一个描述战斗单位的英雄(Hero)类,此类必须包含以下成员变量:名称(name),生命值(life),技能1攻击力(damage1),防御力(defence)
  13. Shape对象和轮廓填充ShapeGeometry
  14. 高颜值时尚小巧蓝牙耳机推荐,女友生日过节最强送礼装备
  15. 程序人生:扒一扒程序员为什么总在加班?拿生命敲代码?
  16. PT100三线制恒流源接法
  17. 手把手教你提升抖音直播间人气、流量的6个技巧
  18. 浅谈分布式集群管理系统
  19. TextGrabber重大更新,识别文字并实时离线翻译,支持中文
  20. [memo] dlopen 与 --export-dynamic

热门文章

  1. Kindle剩余空间变少
  2. Java 微服务中的负载均衡
  3. 陀螺解读 | 一文读懂《泉州市人民政府办公室关于印发加快区块链技术应用发展的若干措施的通知》...
  4. Java中String与char数组相互转换
  5. 关于Mysql数据库关键字“describe”
  6. Java面向对象系列[v1.0.0][SQL语法之数据库约束]
  7. DS二叉排序树之删除
  8. JS统计一个字符串中数字字符的个数。
  9. 【最强大脑】全球脑王的极客挑战赛之路:1413876分夺冠如何炼成?
  10. 解决Linux下Nvidia闭源驱动的双显卡笔记本画面撕裂问题