蓝桥杯今日份练习

简介: 蓝桥杯今日份练习

一、题目

相信小伙伴们都学过斐波那契数列,它是这样一个数列:1,1,3,5,8,13,21…………

用f(n)表示斐波那契数列的第n项,则有:f1=f2=1,fn=fn-1+fn-2(n>2).

输入一个n,求出 fn 对10的9次方+7取模结果。

输入格式:

输入一个整数n(1<=n<=10000)

输出格式:

输出fn对1000000007的值。

二、小技巧和注意事项

1、在解决斐波那契数列问题时,利用数组,我们可以"人为"忽略掉数组下标从0开始,我们定义时,就从下标1开始,跟数列相同

2、因为斐波那契额数列基本呈指数级增长,为了防止数值超过int类型,我们可以边加边取模,结果和最后整个取模是一样的(我称之为取模结合律

三、源码+注释

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int main()
{
  int mod = 1e9 + 7;//1e9这个指数形式要牢记,e前e后都必须是整型!
  int f[100005];
  int n;
  cin >> n;
  f[1] = 1;
  f[2] = 1;
  //利用数组表示斐波那契数列的技巧!在解决斐波那契数列问题时,利用数组,我们可以"人为"忽略掉数组下标从0开始,我们定义时,就从下标1开始,跟数列相同
  for (int i=3;i<=n;i++)
  {
    f[i] = (f[i - 1] + f[i - 2])%mod;//因为斐波那契额数列基本呈指数级增长,为了防止数值超过int类型,我们可以边加边取模,结果和最后整个取模是一样的(我称之为取模结合律)
  }
  cout << f[n] << endl;
  return 0;
}

image.png

相关文章
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
88 1
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
110 0
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
86 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
88 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
93 0
|
7月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
94 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
99 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-985 幸运的店家
86 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-983 最大获利
71 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-982 最小距离
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-982 最小距离
47 0