http://acm.hdu.edu.cn/showproblem.php?pid=2190
Problem Description
这不,一所由社会各界捐款修建的希望小学马上就要竣工了!学校教室的长度为n米,宽度为3米,现在我们有2种地砖,规格分别是1米×1米,2米×2米,如果要为该教室铺设地砖,请问有几种铺设方式呢?
Input
输入数据首先包含一个正整数C,表示包含C组测试用例,然后是C行数据,每行包含一个正整数n(1<=n<=30),表示教室的长度。
Output
对于每组测试数据,请输出铺设地砖的方案数目,每个输出占一行。
Sample Input
2 2 3
Sample Output
3 5
假设我在原来的格子上加了一米,
如果最后一米全用1*1,明显是a[i-1]
还有可以把前一米的一米的擦掉
这块2*2的可以放上面,也可以放下面所以是2*a[i-2],得到公式a[i]=a[i-1]+2*a[i-2]。
代码:
#include<stdio.h>
int main()
{
long long a[50];
int k,i;
a[1]=1;a[2]=3;
for(i=3;i<=30;i++)
a[i]=a[i-1]+2*a[i-2];
scanf("%d",&k);
while(k--)
{
scanf("%d",&i);
printf("%lld\n",a[i]);
}
return 0;
}