swadmin 2022-02-03 18:42 采纳率: 90%
浏览 33
已结题

c++递归问题求解:2790: 菲波那契数列

题目描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来的每个数都等于前面2个数字之和。
给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
输入
第1行是数据的组数n(n<=100000),后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1<=a<=1000000)。
输出
n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。
样例
输入
4
5
2
19
1
输出
5
1
181
1

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-02-03 20:28
    关注

    不能用递归求,否则递归次数太多会导致栈溢出

    #include <iostream>
    
    using namespace std;
    
    int fibonacci(int a)
    {
        if (a == 1 || a == 2)
            return 1;
        int f1 = 1, f2 = 1;
        for (int i = 3; i <= a; i++)
        {
            int f = (f1 + f2) % 1000;
            f1 = f2;
            f2 = f;
        }
        return f2;
    }
    
    int main()
    {
        int n, a;
        cin >> n;
        for (int i = 0; i < n; i++)
        {
            cin >> a;
            cout << fibonacci(a) << '\n';
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 2月3日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理