基本定义

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

Python代码实现

蓝桥杯某届某题目:
资源限制:
要求时间限制在1.0s内,内存限制在256.0MB内。

问题描述:
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少?
输入格式:
输入包含一个整数n。
输出格式:
输出一行,包含一个整数,表示Fn除以10007的余数。

说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入:
10
样例输出:
55
样例输入:
22
样例输出:
7704
数据规模与约定:
1 <= n <= 1,000,000

递归函数实现

def Fibonacci(num):if num == 1 or num == 2:return 1else:return Fibonacci(num - 1) + Fibonacci(num - 2)num1 = int(input('Please input num(num < 1000):'))
print(Fibonacci(num1) % 10007)

注意:Python的递归深度是有限的,默认是1000,当递归深度超过999时,就会引发异常。
以上代码在num较大时,速度会特别慢,不满足时间限制。

可以看到题目说明,直接取余,并不用求出数之后在求它的余数,现在看以下代码,注释可见。

迭代实现

while True:# 异常处理try:num2 = int(input())F1, F2 = 1, 1for i in range(3, num2 + 1):  # 从F(3)开始到num2F1, F2 = F2 % 10007, (F1 + F2) % 10007  # 先取余再递推防止超时# print(F1, ' ', F2)print(F2)except:break

斐波那契(Fibonacci)数列相关推荐

  1. 斐波那契(Fibonacci)数列计算器设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85734538 资源下载地址:https://download.csdn.net/downl ...

  2. 斐波那契数列在计算机的应用,斐波那契(Fibonacci)数列的几种计算机解法

    题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...

  3. 计算机数列类型,斐波那契(Fibonacci)数列的几种计算机解法

    题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...

  4. 递归生成斐波那契Fibonacci数列——Python

    记录一下学习过程 递归生成斐波那契额数列的第n项 定义一个函数Fibonacci(n),它可以生成数列的第n个数,先不考虑是怎么生成的.斐波那契数列的每一项都是前两项的和,因此第 n 项可以由 n-1 ...

  5. 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...

    意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡.问:一对兔子,一年能繁殖成多少对兔子?题中本 ...

  6. 编程之美-斐波那契(Fibonacci)数列方法整理

    [试题描述] 方法一:传统解法,有重复计算 方法二:地推关系式的优化,时间复杂度O(n),空间复杂度也是O(n) 方法三:时间复杂度O(1) 方法四:分治策略,时间复杂度O(logn)

  7. 斐波那契 (Fibonacci)数列

    尾递归会将本次方法的结果计算出来,直接传递给下个方法.效率很快. 一般的递归,在本次方法结果还没出来的时候,就调用了下次的递归, 而程序就要将部分的结果保存在内存中,直到后面的方法结束,再返回来计算. ...

  8. [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解

    原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...

  9. php 斐多纳契数列,斐波那契神奇数列与波浪理论的完美重合(摘选)

    斐波那契神奇数列与波浪理论的完美重合(摘选) 一.斐波那契数列为波浪理论的结构基础 艾略特,波浪理论的开山祖师,在1934年公开发表波浪理论,指出股市走势依据一定的模式发展,涨落之间,各种波浪有节奏地 ...

  10. java兔子,Java斐波那契兔子数列

    本篇文章帮大家学习java斐波那契兔子数列,包含了Java斐波那契兔子数列使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 斐波那契数列指的是这样一个数列 0, 1, 1, ...

最新文章

  1. 内部类的分类及其定义
  2. Effective Java之用实例域代替序数(三十一)
  3. python scapy sniff timeout_为什么我尝试使用scapy.sniff()函数获取此奇怪的输出,以尝试监听打开的网站的流量?...
  4. Media所有参数汇总
  5. 【HTTP】 Fiddler简介
  6. Fundamentals of speech signal processing
  7. 大数据导论章节答案_智慧树APP大数据导论第三单元章节测试答案
  8. android迷你世界助手52,迷你世界助手盒子刷迷你币
  9. gitlab无法推送
  10. 用matlab绘制P三曲线,科学网—水文频率曲线及MATLAB绘制 - 张凌的博文
  11. 关于Dubbo的面试题,建议收藏
  12. 钉钉群机器人关键词自动回复_wetool自动接受新好友wetool pc版-客服
  13. 【电子水尺】高精度测量、免布线、远程传输数据
  14. linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)
  15. 适合平板用的Android版本,安卓平板专享 推荐五款Pad版应用浏览器
  16. [计算机网络]交换机环路问题
  17. Python基础之算数运算符
  18. matlab dae,matlab解DAE遇到的问题
  19. 创建一个urdf机器人_ROS机械臂开发:创建机器人URDF模型
  20. ESP32任务看门狗实践

热门文章

  1. 【record】1、Prometheus-V2 初体验
  2. URL指向文件不存在
  3. 分类计数原理与分步计数原理_分类计数原理和分步计数原理教案
  4. html 外部调用css文件路径,CSS编程的外部CSS文件引用方法是什么
  5. 愚人节与海外网红营销相遇:这些品牌的营销创意让人眼前一亮
  6. 基于深度学习的犬种识别软件(YOLOv5清新界面版,Python代码)
  7. 详解Spring框架的异步请求
  8. Linux下用eclipse调试C++并行程序(MPI)
  9. layuitable设置默认选中
  10. 数据分析--异常值处理