zoukankan      html  css  js  c++  java
  • C1-Zexal的过河

    题目描述

    Zexal打算借助河中间的石砖过到河对岸去Zexal第一块石砖出发,接下来他可以走到第二块石砖或第三块石砖,有时候走的很不爽,甚至可以直接跨过两个石砖,到达第四块石砖,但是不能连续两次这种操作,因为这样消耗体能比较大。现在假设河中含nn块石砖,且这些石砖呈直线分布,请你计算出Zexal从第一块石砖出发有多少种安全的过河方法。

    输入

    输入将由多组测试数据组成,以EOF结尾。

    每组数据只有一行,为河中的总石砖数n0n50

    输出

    对于每组数据,输出一行,为过河的方法数。

    输入样例

    1
    2
    3

    输出样例

    1
    2
    4

    样例解释

    1:一步走完;
    2:先走到2再走完,或者直接走完;
    3:111或12或21或3。

    容易想出来的代码

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    long long n,a[51][2];
    int main()
    {
        a[1][0] = 1;
        a[2][0] = 2;
        a[3][0] = 3;
        a[1][1] = 0;
        a[2][1] = 0;
        a[3][1] = 1;
        for(int i = 4; i <= 50; i++)
        {
            a[i][0] = a[i-1][0] + a[i-2][0] + a[i-1][1] + a[i-2][1];
            a[i][1] = a[i-3][0];
        }
        while(~scanf("%d",&n))
        {
            printf("%lld
    ",a[n][0] + a[n][1]);
        }
        return 0;
    }

    不那么容易想的代码

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    long long n,a[51];
    int main()
    {
        a[1]= 1;
        a[2]= 2;
        a[3]= 4;
        a[4] = 7;
        a[5] = 13;
        for(int i = 6; i <= 50; i++)
        {
            a[i] = a[i-1] + a[i-2] + a[i-4] + a[i-5];
        }
        while(~scanf("%d",&n))
        {
            printf("%lld
    ",a[n]);
        }
        return 0;
    }
  • 相关阅读:
    汽车金融评分卡
    Lending Club 数据做数据分析&评分卡
    时间序列分析和预测 (转载)
    距离计算公式总结(转载)
    机器学习常用算法与辅助函数公式
    金融领域常用的数据分析方法
    常用模型评估方法总结
    A--集成算法的实现
    A--随机森林(RF)的 sciklit-learn 实现
    A--Scikit-Learn 实现决策树
  • 原文地址:https://www.cnblogs.com/kubab119/p/11823330.html
Copyright © 2011-2022 走看看