斐波那契数列
2016-03-06 15:15
232 查看
问题描述
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。
View Code
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。
#include<iostream> using namespace std; int main(){ int f1=1,f2=1,f,n,i; cin>>n; for(i=3;i<=n;i+=2){ f1 = ((f1+f2)>10007)? (f1+f2)%10007 : (f1+f2) ; f2 = ((f1+f2)>10007)? (f1+f2)%10007 : (f1+f2) ; } f=(n%2 != 0)? f1:f2; cout<<f<<endl; return 0; }
View Code
相关文章推荐
- 使用jQuery或者原生js实现鼠标滚动加载页面新数据
- linux(ubuntu)sudoers权限错误导致sudo无法使用
- Android 菜鸟认知总结——Android初印象之系统架构和app 组件
- hdoj 1418 抱歉(公式)
- openssl 加密
- Tsinsen-A1103 ====单循环赛制====固定轮转法。。
- 构建之法阅读笔记01
- 几个具体的编辑器类的成员
- java简单操作word实例
- SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法
- JavaScript加载XMl文件
- java中hashCode方法与equals方法的用法总结
- 理解int main(int argc,char **argv)中的参数的意义
- 提问的艺术
- 利用linuxkernel构建一个精简版的操作系统内核
- Linux是如何启动的
- <Android编程权威指南>之1.6 Activity.this和this的区别
- play1.2.7局部编译,局部打包完整解决方案
- 罗列iOS开发中各种的宏定义
- POJ 1200 Crazy Search