p.s.个人收录用
题目描述
有1×n的一个长方形,用一个1×1、1×2和1×3的骨牌铺满方格。例如当n=3时为1×3的方格。此时用1×1、1×2和1×3的骨牌铺满方格,共有四种铺法。如下图:
输入
输入整数n
输出
输出铺法总数
样例输入 Copy
3
样例输出 Copy
4
提示
n <= 40
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//骨牌铺法
int a[100] = { 0 };
int way(int n)
{
if (a[n])
return a[n];
a[n] = way(n - 1) + way(n - 2) + way(n - 3);
return a[n];
}
int main()
{
int n;
scanf("%d", &n);
a[1] = 1; a[2] = 2; a[3] = 4;
printf("%d\n", way(n));
}