问题 D: 【一本通基础递推】菲波那契数列(2)C++题解

问题 D: 【一本通基础递推】菲波那契数列(2)

[题目描述]

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 ≤ a ≤ 1000000)。

输出

n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。

样例输入

4
5
2
19
1

样例输出

5
1
181
1

本题思路:本题较简单,我们都知道斐波那契数列第一项为0, 第二项为1,而后项为前两项之和,算完之后,输出答案 % 1000即可,主要代码如下:


    a[1] = 1, a[2] = 1;
    for(i = 3; i <= 1000000; i++)
        a[i] = (a[i - 1] + a[i - 2]) % 1000;

完整代码如下:

#include <stdio.h>
int a[1000100];
int main(){
    int n, x, i;
    a[1] = 1, a[2] = 1;
    for(i = 3; i <= 1000000; i++)
        a[i] = (a[i - 1] + a[i - 2]) % 1000;
    scanf("%d", &n);
    for(i = 1; i <= n; i++){
        scanf("%d", &x);
        printf("%d\n", a[x]);
    }
    return 0;
}

题解完毕!!!欢迎点赞评论收藏+关注,你的点赞是博主写完章最大的动力!!!

posted @   不怕困难的博客  阅读(70)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示