铺地砖问题(递归)

问题描述:单位地砖的规格是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的值:
");
    fflush(stdout);
    scanf("%d", &n);
    printf("共有 %d 中铺排方法", Spread(n));
    return 0;
}

测试结果:

原文地址:https://www.cnblogs.com/fanlumaster/p/13631966.html