#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; const int N = 21; int n; int dp[N][N];//dp[x][y]表示有x块巧克力y天时的方案数 int f(int n) { //由于每天都至少吃一块巧克力,所以在有n块巧克力的情况下最多吃n天 //递推式:f(n) = dp[n - 1][n - 1] + dp[n - 2][n - 1]; //进行边界处理 // if (n == 0)return 0; // if (n == 1)return 1; // if (dp[n][m] != -1) return dp[n][m]; if (n == 1) return 1; if (n == 2) return 2; else return f(n - 1) + f(n - 2); } int main() { while(cin >> n) { //memset(dp, -1, sizeof(dp)); cout << f(n) << endl; } return 0; } // 64 位输出请用 printf("%lld")