这道题要提前将所有的数据保存在数组中,每读入一个数据求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;
} 
京公网安备 11010502036488号