zoukankan      html  css  js  c++  java
  • HDU2046 骨牌铺方格【递推】

    问题链接HDU2046 骨牌铺方格

    问题简述:参见上述链接。

    问题分析这是一个典型的递推计算题。

    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个骨牌。

    程序说明:(略)。


    AC的C语言程序如下:

    /* HDU2046 骨牌铺方格 */
    
    #include <stdio.h>
    
    #define MAXN 50
    
    typedef unsigned long long ULL;
    
    ULL fn[MAXN+1];
    
    void setfn()
    {
        int i;
    
        fn[0] = 0;
        fn[1] = 1;
        fn[2] = 2;
        for(i=3; i<=MAXN; i++)
            fn[i] = fn[i-2] + fn[i-1];
    }
    
    int main(void)
    {
        int n;
    
        // 先打表(以防万一测试集合大)
        setfn();
    
    
        while(scanf("%d", &n) != EOF)
            printf("%lld
    ", fn[n]);
    
        return 0;
    }


  • 相关阅读:
    Flink
    数据工程师
    数据库中间件
    数据仓库
    数据库
    设计模式
    机器学习
    Collections
    Concurrency
    Java
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564643.html
Copyright © 2011-2022 走看看