我是靠谱客的博主 高大高跟鞋,最近开发中收集的这篇文章主要介绍骨牌铺方格,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

骨牌铺方格
Time Limit: 1000 ms Memory Limit: 32768 KiB
在这里插入图片描述
Problem Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:

Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1
3
2
Sample Output
1
3
2
分析:一个典型的递推计算题。
f(0) = 0,没有地方摆骨牌,所以为0;
f(1) = 1,只能竖着摆放1个骨牌;
f(2) = 2,可以是横着摆放2个骨牌,或者竖着摆放2个骨牌;
f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基础上在右边再横着放2个骨牌(竖着放已经在f(n-1)中),也可以在f(n-1)的基础上在右边再竖着1个骨牌。

#include<bits/stdc++.h>

using namespace std;

long long int f[60];

int main()
{
    int x;
    f[1] = 1;
    f[2] = 2;
    f[3] = 3;
    for (int i = 4; i <= 50; i++)
        f[i] = f[i - 1] + f[i - 2];
    while (cin >> x)
        cout<<f[x]<<endl;
    return 0;
}

最后

以上就是高大高跟鞋为你收集整理的骨牌铺方格的全部内容,希望文章能够帮你解决骨牌铺方格所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部