难点:

1、容易习惯性的使用递归解法,但递归的时间复杂度为O(2^n),超出时间限制。
2、加一次,就取余一次,避免溢出
3、采用非递归很容易想到用数组存储,空间复杂度为O(n)。 但更优化的解法是:定义两个变量交替互换,使空间复杂度也降低到O(1)
下面我给出两种代码,供大家参考。

欠佳的代码 (时间:O(n),空间O(n))

#include<iostream>
#define Max 1000005
using namespace std;
int a[Max]; //注意要定义全局变量,因为main函数中的数组最大容量为50W+ ,会溢出
int main() {int n;cin >> n;a[0] = 1; a[1] = 1;for(int i = 2; i < n; i++) {a[i] = ((a[i-1]+a[i-2])%10007);}cout << a[n-1];return 0;
}

最优解(时间:O(n), 空间:O(1))

#include<iostream>
using namespace std;
int main() {int n;  cin >> n;int n1 = 1, n2 = 1;for(int i = 2; i < n; i++) { int t = n2; n2 = ((n1+n2)%10007);  n1 = t; }cout << n2;return 0;
}

蓝桥杯 试题 入门训练 Fibonacci数列——9行代码AC相关推荐

  1. 蓝桥杯 试题 入门训练 序列求和——6行代码AC

    难点: 1.要用高斯公式求数列和,否则数值会在计算期间溢出 2.int型变量最大值为21亿+,但他要求最大1-10亿的连加和, 所以需要用到long long (最大值是2^64, 19位数) 代码: ...

  2. [Java] 蓝桥杯 BEGIN-4 入门训练 Fibonacci数列

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

  3. 蓝桥杯 BEGIN-4 入门训练 Fibonacci数列

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

  4. 解题报告——蓝桥杯 试题 基础练习 字符串对比——16行代码AC

    励志用尽量少的代码做高效的表达 储备知识: 1.转化字母大小写→cctype头文件函数详解 注意点: 1.本题按要求4个if语句层层嵌套,一定要做到清晰.易懂,才能快速解题. 3.判断第三点时,用#i ...

  5. 蓝桥杯 试题 基础练习 芯片测试——12行代码AC

    励志用少的代码做高效的表达. 心路历程: 最初做时没看到"已知好芯片比坏芯片多"这句话,蒙了好久,又看了一遍题才看到(哭). 理解了题意后发现就是一道普通的统计题(好芯片得到的&q ...

  6. 蓝桥杯 试题 基础练习 Huffuman树——13行代码AC

    储备知识: 优先队列→优先队列用法函数详解 万能头文件→#include<bits/stdc++.h> 思路: 最开始笔者网搜了一下哈夫曼树,动辄上百行的代码让人头大(偷懒偷懒) 于是笔者 ...

  7. 蓝桥杯 试题 基础练习 字母图形——13行代码AC

    励志做更高效率,更简练表达的代码. 注意点: 1.注意固定好第一行和第一列的字符(用阿斯克码强转成char表示,会更方便) 2.在线处理的方法,也就是说:计算出一个值,就输出一个值.一个循环多个作用. ...

  8. 试题 入门训练 Fibonacci数列

    试题 入门训练 Fibonacci数列 提交此题 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. ...

  9. 蓝桥杯试题 基础练习 Fibonacci数列

    ** 试题 基础练习 Fibonacci数列 ** 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. ...

最新文章

  1. 轻松应对Java试题,这是一份大数据分析工程师面试指南
  2. 车提示检测轮胎气压_无钥匙启动的车启动后,车主带着钥匙离开车,能不能把车开走?...
  3. 【论文学习】mixup系列(mixup、cutMix、manifold mixup、patchUp、saliencyMix、puzzleMix、co-Mixup、FMix)
  4. JDK 动态代理和MyBatis 用到的JDK 动态代理有什么区别?
  5. java语言 编译原理_【Java学习】深入分析Java的编译原理
  6. Python编写人机对战小游戏(抓小狐狸)
  7. 读取JSON文件并 排序,分组,
  8. Endurance for Mac(电池续航管理提升工具)
  9. 怎么打包java文件夹_怎么把文件夹打包成jar
  10. Eclipse的汉化
  11. Nero Multimedia Suite 10.6.11300
  12. 数字信号处理教程答案及解析(第五版)
  13. editplus远程连接云服务器
  14. Chrome 扩展程序 OneTab Techzero优化版 v1.0.0 发布
  15. 利用计算机证明猜想,计算机科学家利用量子纠缠系统,证实44年前的一个猜想是错误的...
  16. trips | python注释快捷键
  17. 铁路系统各专业介绍(车机工电辆)
  18. 软件测试与质量保证课后作业
  19. 数据结构趣味题-约瑟夫环
  20. mysql中employees的意思_MySQL 示例数据库 employees 详解

热门文章

  1. 定个目标|建立自己的技术知识体系
  2. 干掉RESTful:GraphQL真香!
  3. 2020 JVM生态报告
  4. Linux IO磁盘篇整理小记
  5. 什么是闭合GOP和开放GOP?
  6. 周昌印:忘记技术 从用户与市场考虑问题
  7. LiveVideoStack线上交流分享 ( 一 ) —— 解密GPU:视频转码与分析加速
  8. 设计模式C++实现(3)——装饰模式
  9. TSRC白帽子,10亿用户的守护者
  10. nginx处理http(http变量篇)