这道题要提前将所有的数据保存在数组中,每读入一个数据求f[n]即可。
千万不要每次都递归计算会TLE,其次要将f数组定义为long long 。

#include <bits/stdc++.h>

using namespace std;

long long f[55] = {0};
void Fibonacci()
{
    f[1] = 0,f[2] = 1,f[3] = 1;
    for(int i = 4; i <= 55; i++ ) f[i] = f[i - 1] + f[i - 2];
}
int main()
{
    Fibonacci();
    int n;
    cin >> n;
    cout << f[n] << endl;
    return 0;
}