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