天天看点

PAT乙级(Basic Level)练习题 斐波那契凤尾

斐波那契凤尾

时间限制 3000 ms  内存限制 32768 KB  代码长度限制 100 KB  判断程序 Standard  (来自 小小)

题目描述

NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。

为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。当然,斐波那契数会很大。因此,如果第n个斐波那契数不到6位,则说出该数;否则只说出最后6位。      

输入描述:

输入有多组数据。

每组数据一行,包含一个整数n (1≤n≤100000)。      

输出描述:

对应每一组输入,输出第n个斐波那契数的最后6位。      

输入例子:

1
2
3
4
100000      

输出例子:

1
2
3
5

537501


       
#include <cstdio>
const int maxn=100000+10;
int a[maxn];

int main(){
    int n;
    a[1]=1;
    a[2]=2;
    for(int i=3;i<=100000;i++) a[i]=(a[i-1]+a[i-2])%1000000;
    while(scanf("%d",&n)==1){
        if(n>=30) printf("%06d\n",a[n]);
        else printf("%d\n",a[n]);
    }
    return 0;
}
           

继续阅读