#include using namespace std; /* f(1)=1 f(2)=2 f(3)=4 f(4)=7 */ //递归解法 int dp(int n) { if (n == 1) return 1; if (n == 2) return 2; if (n == 3) return 4; return dp(n - 1) + dp(n - 2) + dp(n - 3); } const int N = 110; int f[N]; int main() { int n; scanf("%d", &n); printf("%d\n", dp(n)); f[1] = 1, f[2] = 3, f[3] = 4; for (int i = 4; i <= n; i++) f[i] = f[i - 1] + f[i - 2] + f[i - 3]; printf("%d\n", f[n]); return 0; }