zoukankan      html  css  js  c++  java
  • 小明铺路

    【问题描述】

    小明家门前有一条通往公交车站的马路,但由于有点低洼,下雨天很容易积水,给他的家人出行带来很大不便。周末了,他想带着妹妹把这条路重新铺一遍。假设该马路是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;
    }
  • 相关阅读:
    DataTable的一些使用技巧
    Linux下使用Mysql
    【Cocos2d-X开发学习笔记】第28期:游戏中音乐和音效的使用
    HDU 4669 Mutiples on a circle (DP , 统计)
    面试经典-设计包含min函数的栈
    最大熵模型
    这篇文章关于两阶段提交和Paxos讲的很好
    【读书笔记】神经网络与深度学习
    这个对协程的分析不错
    sendfile学习
  • 原文地址:https://www.cnblogs.com/woxiaosade/p/10014961.html
Copyright © 2011-2022 走看看