斐波那契(Fibonacci)数列
基本定义
斐波那契数列,又称黄金分割数列,指的是这样一个数列: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)数列相关推荐
- 斐波那契(Fibonacci)数列计算器设计
资源下载地址:https://download.csdn.net/download/sheziqiong/85734538 资源下载地址:https://download.csdn.net/downl ...
- 斐波那契数列在计算机的应用,斐波那契(Fibonacci)数列的几种计算机解法
题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...
- 计算机数列类型,斐波那契(Fibonacci)数列的几种计算机解法
题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...
- 递归生成斐波那契Fibonacci数列——Python
记录一下学习过程 递归生成斐波那契额数列的第n项 定义一个函数Fibonacci(n),它可以生成数列的第n个数,先不考虑是怎么生成的.斐波那契数列的每一项都是前两项的和,因此第 n 项可以由 n-1 ...
- 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...
意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡.问:一对兔子,一年能繁殖成多少对兔子?题中本 ...
- 编程之美-斐波那契(Fibonacci)数列方法整理
[试题描述] 方法一:传统解法,有重复计算 方法二:地推关系式的优化,时间复杂度O(n),空间复杂度也是O(n) 方法三:时间复杂度O(1) 方法四:分治策略,时间复杂度O(logn)
- 斐波那契 (Fibonacci)数列
尾递归会将本次方法的结果计算出来,直接传递给下个方法.效率很快. 一般的递归,在本次方法结果还没出来的时候,就调用了下次的递归, 而程序就要将部分的结果保存在内存中,直到后面的方法结束,再返回来计算. ...
- [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...
- php 斐多纳契数列,斐波那契神奇数列与波浪理论的完美重合(摘选)
斐波那契神奇数列与波浪理论的完美重合(摘选) 一.斐波那契数列为波浪理论的结构基础 艾略特,波浪理论的开山祖师,在1934年公开发表波浪理论,指出股市走势依据一定的模式发展,涨落之间,各种波浪有节奏地 ...
- java兔子,Java斐波那契兔子数列
本篇文章帮大家学习java斐波那契兔子数列,包含了Java斐波那契兔子数列使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 斐波那契数列指的是这样一个数列 0, 1, 1, ...
最新文章
- 内部类的分类及其定义
- Effective Java之用实例域代替序数(三十一)
- python scapy sniff timeout_为什么我尝试使用scapy.sniff()函数获取此奇怪的输出,以尝试监听打开的网站的流量?...
- Media所有参数汇总
- 【HTTP】 Fiddler简介
- Fundamentals of speech signal processing
- 大数据导论章节答案_智慧树APP大数据导论第三单元章节测试答案
- android迷你世界助手52,迷你世界助手盒子刷迷你币
- gitlab无法推送
- 用matlab绘制P三曲线,科学网—水文频率曲线及MATLAB绘制 - 张凌的博文
- 关于Dubbo的面试题,建议收藏
- 钉钉群机器人关键词自动回复_wetool自动接受新好友wetool pc版-客服
- 【电子水尺】高精度测量、免布线、远程传输数据
- linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)
- 适合平板用的Android版本,安卓平板专享 推荐五款Pad版应用浏览器
- [计算机网络]交换机环路问题
- Python基础之算数运算符
- matlab dae,matlab解DAE遇到的问题
- 创建一个urdf机器人_ROS机械臂开发:创建机器人URDF模型
- ESP32任务看门狗实践