Fork me on GitHub

骨牌铺方格

在1×n的一个长方形方格中,用1×1、1×2、1×3的骨牌铺满方格,输入n ,输出铺放方案的总数。 例如n=3时,为1× 3方格,骨牌的铺放方案有四种,如下图:

输入

输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是1×n (0

输出

对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。

样例输入

1
2
3
0

样例输出

1
2
4
#include <stdio.h>
int main(){
int dp[50];
int n, i;
dp[1] = 1; dp[2] = 2; dp[3] = 4;
while (scanf("%d", &n)==1 && n!=0){
   for (i=4; i<=n; i++){
    dp[i] = dp[i-3]+dp[i-2]+dp[i-1];
   }
   printf("%d\n", dp[n]);
}
return 0;
}

 

posted @ 2018-10-23 17:48  Lazy.Cat  阅读(374)  评论(0编辑  收藏  举报