用dp[i]表示第i种的情况,第i个上放一个木人,共有dp[i-3]+1种情况。不放木人共有dp[i-1]种情况。所以dp[i]=dp[i-1]+1+dp[i-3]。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
__int64 dp[1000];
int main()
{
dp[1]=1;dp[2]=2;dp[3]=3;dp[4]=5;
for(int i=5;i<=60;i++)
{
dp[i]=dp[i-1]+1+dp[i-3];
}
int n;
while(~scanf("%d",&n))
{
printf("%I64d
",dp[n]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/