前言:
21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。
解答:
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn = 31;
int dp[maxn];
int f(int n) {
if (n == 0 || n == 1)
return n;
else if (dp[n] != -1)
return dp[n];
else {
dp[n] = f(n - 1) + f(n - 2);
return dp[n];
}
}
int main()
{
int n;
for (int i=0; i < 31; i++)
dp[i] = -1;
while (cin >> n) {
cout << f(n) << endl;
}
return 0;
}