#include<bits/stdc++.h> using namespace std; long long F[56]; //感觉就是变相的fib数列 //其实就是让我们转移方程 //F[i]=F[i-1]+F[i-3],意义和“永生的兔子”差不多 //客人这个和“永生的兔子” 一样,相当于也是1天的成熟期 //转移方程是fib[i]=fib[i-1]+fib[i-2],原因,fib[i-2]的到i就全部成熟了,可以带来 //客人fib[i-2]个,而且现在还没有算他们本身和他们带来的没有成熟的客人,也就是fib[i-1] //好在没有溢出,永生的兔子是fib数列 void init() { F[1]=1; F[2]=2; F[3]=3; F[4]=4; for(int i=5;i<56;++i) { F[i]=F[i-1]+F[i-3]; } } int main() { init(); int n; while(~scanf("%d",&n)) { printf("%lld\n",F[n]); } return 0; }