铺地砖问题(递归)
问题描述:单位地砖的规格是1×2,铺地砖的区域是2×n,求一共有多少种铺法。
分析:找出基准情形和递推关系
- 基准情形:f(1) = 1, f(2) = 2 (即横着铺和竖着铺)
- 递推关系:f(n) = f(n - 1) + f(n - 2)
根据递推关系,写出C语言代码:
#include <stdio.h>
int Spread(int n) {
if (1 == n)
return 1;
if (2 == n)
return 2;
return Spread(n - 1) + Spread(n - 2);
}
int main() {
int n;
printf("请输入n的值:\n");
fflush(stdout);
scanf("%d", &n);
printf("共有 %d 中铺排方法", Spread(n));
return 0;
}
测试结果: