问题:

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。


有两种方法,迭代法(动态规划)和递归法:

递归法的代码简单,但运行速度慢,会超时。相比之下,迭代法的运行速度快,成为这道题的优秀解法。值得注意的是,若不在每一步便取余,最后Fn可能非常大导致溢出,所以我们应该每一步都进行取余,最后的结果是相等的。

迭代法:

#include<iostream>
using namespace std;#define MOD 10007
#define MAX_S 1000000int f[MAX_S];int main() {int n;cin >> n;f[0] = 1;f[1] = 1;if (n < 1 || n>1000000) exit(0);for (int i = 2; i < n; i++) {//若现在不进行取余,最后Fn可能非常大导致溢出,所以现在进行取余,最后的结果是相等的f[i] = (f[i - 1] + f[i - 2]) % MOD;}cout << f[n - 1] << endl;return 0;
}

蓝桥杯,基础练习 Fibonacci数列(斐波那契数列) C++相关推荐

  1. 【蓝桥杯每日一练】 斐波那契数列

    目录 1.说明 2.原理 3.python实现 第一种: 第二种: 第三种 第四种 1.说明 Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个 ...

  2. C++large fibonacci大斐波那契数列的实现(附完整源码)

    C++large fibonacci大斐波那契数列的实现算法 C++large fibonacci大斐波那契数列的实现算法完整源码(定义,实现,main函数测试) 用于对任意大数执行算术运算的库lar ...

  3. Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列

    Fibonacci series: 斐波纳契数列, 两个元素的总和确定了下一个数,例如:1 1 2 3 5 8 13 21 34 55 Python程序如下: def fibonacci1(n):a, ...

  4. HDU1568 Fibonacci【斐波拉契数列】

    Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. HDU-A Fibonacci sequence斐波那契数列-大数求和

    问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Fibonacci.cpp *作 者:单昕昕 *完成日期 ...

  6. 第十一章 ALDS1_10_A:Fibonacci Number 斐波那契数列

    问题链接 ALDS1_10_A:Fibonacci Number 问题内容 求出斐波那契数列的第n项的值. 思路 递推并记录前n项的值到数组,求第n项的值时用到第n-1项和第n-2项,这样我们先记录开 ...

  7. 简洁笔记-Java数据结构基础(5.递归和斐波那契数列、汉诺塔)

    什么是递归 递归简单来说就是方法调用自己 例子1: 从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山.. 例子2:美女拿着自己的照片, ...

  8. 斐波那契数列不用数组_兔子数列——斐波那契数列

    相信人们都对斐波那契数列有或多或少的了解,如果没有,那你一定听过黄金分割比或是见过下面这种图片: 斐波那契生活在十三世纪的意大利,原名列奥纳多·皮萨诺(Leonardo Pisano),他出生在意大利 ...

  9. matlab斐波那契数列画图,斐波拉契数列 斐波那契数列 matlab程序

    斐波那契数列数列从第3项开始,每一项都等于前两项之和. 例子:数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,25 ...

  10. 斐波那契数列编程python_fibonacci数列-斐波那契数列-python编程

    未完待续~ 了解fibonacci数列: 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列. 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610 ...

最新文章

  1. codewars047: 街头霸王2
  2. WPF:Input and Commands输入和命令(1)
  3. 《精通正则表达式》读书笔记(1)
  4. IDEA 快捷键MacOS
  5. java正则表达式的基本语法以及不同环境的表单验证
  6. 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出
  7. LDA主题模型原文解读
  8. Java开发常识资料
  9. php判断桌面宽度,js获取页面宽度高度及屏幕分辨率
  10. 融云通讯服务器,vue使用融云即时通讯,老是报了发送失败,服务器超时
  11. PyTorch框架学习八——PyTorch数据读取机制(简述)
  12. 关于 VB,VC,Delphi,SDK 的笑话
  13. python 算法库_一个易用又功能强大的 Python遗传算法库
  14. Ubuntu 20.04 安装CUDA11.1 和cudnn 8.0.5
  15. Python-查看python版本-常用代码-VS编译器版本号
  16. 项目日志 Log4cpp
  17. 大学计算机系最努力的同学都是如何学习的?
  18. RFID技术是怎么构成的,主要分为哪几部分?
  19. QT纯代码设计UI界面Demo
  20. IROS 2017观察:机器人研究产业化加速,中国企业如何借力升级?

热门文章

  1. 转帖node详细教程
  2. ReferenceError: request is not defined
  3. android点击vcf文件,Android vcard使用示例,生成vcf文件
  4. 简单系统U盘制作 / 安装系统
  5. 我爱淘二次冲刺阶段3
  6. 水星怎么设置网速最快_水星路由器怎么设置网速最快
  7. android自带下拉阻尼动画,Android 阻尼回弹效果简单实现(类似iOS)
  8. SuperMap iClient3D for WebGL之BIM模型爆炸
  9. html 跑步比赛小游戏,跑步比赛小班游戏教案
  10. 当面试官问到以后的职业规划,这样回答绝对称赞你是高手!(二)