小明铺路

Posted woxiaosade

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小明铺路相关的知识,希望对你有一定的参考价值。

【问题描述】

小明家门前有一条通往公交车站的马路,但由于有点低洼,下雨天很容易积水,给他的家人出行带来很大不便。周末了,他想带着妹妹把这条路重新铺一遍。假设该马路是2×n的长方形方格状,现在他们计划使用1×2型方砖进行铺设。小明想预算一下有多少种铺路方案,铺路过程中不允许把砖块敲碎。例如:如果n=3,即马路是2×3的长方形方格状,共有下列三种铺路方案(如下图)。

对于任意的n,请你编写一个程序帮助小明计算铺放方案总数。

技术分享图片

【输入形式】

输入文件中包含多个测试数据。每个测试数据占一行,为一个正整数n,表示该测试数据的长方形方格的规格是2×n (0<n<=45)。测试数据一直到文件尾。

【输出形式】

对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。

【样例输入】

1
3
2

【样例输出】

1
3
2

这道题,是校内oj平台的一道题,起初自己认为是动态规划问题,但是在分析过后发现,F(n)只与他的前两项,即F(n-1) F(n-2)有关
手算前几项,就可以发现F(n)=F(n-1) + F(n-2),大胆测试,AC成功。
#include<stdio.h>
#include<iostream>
using namespace std;
int a[45];
int main() {
    a[1] = 1;
    a[2] = 2;
    a[3] = 3;
    int i;
    for (i = 4; i <= 45; i++)
        a[i] = a[i - 1] + a[i - 2];
    int n;
    while (cin >> n)
        printf("%d
", a[n]);
    return 0;
}

 

以上是关于小明铺路的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴计划开源 Nacos,为Dubbo生态发展铺路

4. (编程pascal)铺路问题

硬铺路软筑墙:三星移动在中国的新路径

iPad 今年将率先跟进 TrueDepth 摄像头,为 AR 眼镜铺路

12000+字Java反射,一起全面了解Java反射机制,为学习框架铺路

重磅剧透!阿里巴巴计划开源 Nacos,为Dubbo生态发展铺路