HDUOJ 2046骨牌铺方格
Problem Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210225114540826.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MTE0MTY4,size_16,color_FFFFFF,t_70)
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1
3
2
Sample Output
1
3
2
连续几道都是这种套路的递推,也可以说是动态规划,用打表的方法最快,另外要注意的一个点就是要用long long int型数组不然到后面的数不够存
Submit
#include<stdio.h>
int main() {
long long int a[50] = { 0,1,2 };
int n;
for (int i = 3; i <= 50; i++)
a[i] = a[i - 1] + a[i - 2];
while (~scanf("%d", &n)) {
printf("%lld\n", a[n]);
}
return 0;
}