2 条题解

  • 1
    @ 2024-8-12 11:31:19

    关于使用 递归来解决斐波拉契问题

    每步取余 有效防止一些奇奇怪怪的小错误
    其中 第一个和第二个数据特判就行了 不用整太麻烦 这个题简单就直接上代码把

    Code:

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #define int long long
    
    using namespace std;
    
    const int Num = 1e9 + 7;
    int n;
    int a = 1 , b = 1;
    void fi(int u)
    {
    
        int temp = (a + b) % Num;
        a = b , b = temp;
    
        if (u == n)
        {
            cout << temp << endl;
            return ;
        }
    
        fi(u + 1);
    }
    signed main()
    {
        cin >> n;
    
        if (n == 1 || n == 2)
        {
            cout << "1" << endl;
            return 0;
        }
        else 
            fi(3);
        
        return 0;
    }
    
    • 1
      @ 2024-7-25 13:10:58
      #include<iostream>
      
      using namespace std;
      
      const int N = 1000010;
      const int mod = 1e9 + 7;
      int a[N];
      
      int main()
      {
          int n;
      
          cin >> n;
          a[1] = 1, a[2] = 1;
          for (int i = 3; i <= n; ++i)
          {
              a[i] = (a[i - 1] + a[i - 2]) % mod;
          }
          cout << a[n] << endl;
      
          return 0;
      }
      
      • 1

      信息

      ID
      1577
      时间
      1000ms
      内存
      128MiB
      难度
      10
      标签
      递交数
      6
      已通过
      3
      上传者