前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小文’s blog–Fibonacci数列 –《蓝桥杯代码笔记3》

小文’s blog–Fibonacci数列 –《蓝桥杯代码笔记3》

作者头像
神无月
发布2018-06-25 17:32:04
4050
发布2018-06-25 17:32:04
举报
文章被收录于专栏:小文博客小文博客

这几天忙于拜年,很久没更新文章了。对不住大家0.0。

今天给大家带来的是一个非常基础的题,可是博主刚开始写的算法超出运行时间了。

Fibonacci数列

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

数据规模与约定

1 <= n <= 1,000,000。


由于博主刚开始忽略的n的取值,直接用递归,后面当n值过大是导致程序卡死。

可能习惯用递归了而不喜欢用循环了。

#include<stdio.h> int f(int n) { int i, s1=1, s2=1, s3=1; for(i=3; i<=n; i++) { s3=s1+s2; if(s3>10007) s3-=10007; s1=s2; s2=s3; } return s3; } int main() { int n; scanf("%d", &n); printf("%d\n", f(n)); return 0; }

123456789101112131415161718192021

#include<stdio.h>int f(int n){    int i, s1=1, s2=1, s3=1;     for(i=3; i<=n; i++)    {        s3=s1+s2;         if(s3>10007)        s3-=10007;         s1=s2;         s2=s3;     }    return s3; }int main(){ int n; scanf("%d", &n); printf("%d\n", f(n)); return 0; }

由于题目太简单,博主就不仔细讲解,希望大家引以为戒。一定要看清题目的要求。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年2月1日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fibonacci数列
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档