题目描述
Edmondsiu用沙袋练习武术。Edmondsiu希望把沙袋摆在他家豪宅里面。Edmondsiu的豪宅有一个由11的地砖铺成的1n的院子里。Edmondsiu是处女座的,所以他要把一个沙袋正好摆在一个地砖上,并且两个沙袋之间地砖必须大于等于两个,现在Edmondsiu想知道在至少摆放一个沙袋的情况下,有多少种摆法。
输入
输入有多组数据,每组数据第一行为一个整数n(1 < = n < = 60)
输出
对于每组数据输出一行表示摆放方案数
分析:
通过分析,我们会发现其中的规律。
1 2 3 4 5 8 12 18……
我们会发现,a[n]=a[n-1]+a[n-3]+1;
所以代码如下:打表输出
#include"stdio.h"
int main()
{
long long a[61],i,j,k;
a[1]=1;a[2]=2;a[3]=3;a[4]=5;
for(i=5;i<61;i++)
a[i]=a[i-1]+a[i-3]+1;
while(~scanf("%lld",&k))
{
printf("%lld\n",a[k]);
}
}