原题地址
一道递推题,由于自己的想法僵硬,花了好长时间,才明白方法,然后,卡在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;
}