原题地址
一道递推题,由于自己的想法僵硬,花了好长时间,才明白方法,然后,卡在long long 这个大数这,不太明白一共就50个,咋方法数能超过10^6.

#include<iostream>
#include<vector>
#include<bits/stdc++.h>
//#include<math.h>
using namespace std;

long long  gcd(int n){
    long long  f[55];
    f[1]=1;
    f[2]=2;
    for(int i=3;i<=n;i++)
        f[i] = f[i-1]+f[i-2];
    return f[n];
}

int main( )
{
    int n,m ;
   while(cin >>n){

     cout<<gcd(n)<<endl;
   }

    return 0;

}