您的位置:首页 > 编程语言 > C语言/C++

骨牌铺方格问题C++

2020-01-15 06:15 981 查看

问题描述

有 2*n 的一个长方形方格,用一个1*2 的骨牌铺满方格,示例如下:

编写一个程序,试对给出的任意一个n(n>0), 输出铺法总数。

分析:
当n=1时,方格数为2,有1种铺法;
当n=2时,方格数为4,有2种铺法;
当n=3时,方格数为6,有3种铺法;
当n=4时,方格数为8,有5种铺法。
可得规律:
f(1) = 1;
f(2) = 2;

f(n) = f(n-1)+f(n-2)   (n>2)

代码如下:

#include <iostream>

using namespace std;

int main()
{
int a[100] = {0}; //存储方法数
a[1] = 1;
a[2] = 2;
int n; //骨牌格数量 2*n
cin>>n;
for(int i=3;i<=n;i++){
a[i] = a[i-1]+a[i-2];
}
cout<<a[n]<<endl;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
小韩不要作小白 发布了19 篇原创文章 · 获赞 0 · 访问量 1366 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: