#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;
} 
京公网安备 11010502036488号