入门训练 Fibonacci数列
来源:互联网 发布:战争雷霆手机数据库 编辑:程序博客网 时间:2024/06/04 00:32
原题目地址:入门训练1
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入
- 10
- 22
样例输出
- 55
- 7704
数据规模与约定
1 <= n <= 1,000,000。
示例代码如下:
include<iostream>using namespace std;define MOD 10007 //定义除数define MAXN 1000001 //定义数组长度int n,i,F[MAXN];int main() { while(cin>>n&&n != 0) { F[1] = F[2] = 1; for(i = 3;i <= n;i ++) { //每一次都取余 比 最后取余 快 F[i] =(F[i - 1] + F[i - 2]) % MOD; } //此时的F(n)即为Fibonacci数列取余后的结果 cout<<F[n] <<endl; } return 0; }
提示
在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,
而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
0 0
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- JS调试
- myeclipse设置tab键两个空格
- 关于热修复
- RNN与反向传播算法(BPTT)的理解
- 【Hibernate】——由持久化和映射文件创建表
- 入门训练 Fibonacci数列
- c++实现websocket服务端与JavaScript通讯
- 《iPhone 4开发基础教程》读书笔记
- Android 系列 4.4使用Intent.putExtra()推送字符串值
- JavaScript中的window.open()打开一个新的网页
- POJ3280——Cheapest Palindrome(动态规划)
- Android逆向中的常用调试方法和使用代码总结
- linux c头文件#include<sys/types.h>和#include<fcntl.h>头文件总结
- TSMessages,非HUD风格的iOS提示框