zoukankan      html  css  js  c++  java
  • 【TFLSnoi李志帅】第⑤篇文章--递推算法经典例题

    制作着实不易,不喜勿喷,欢迎点赞(嘿嘿嘿

    1190:上台阶


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 23566     通过数: 6903

    【题目描述】

    楼梯有n(71>n>0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。

    【输入】

    输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。

    【输出】

    每一行输出对应一行输入的结果,即为走法的数目。

    【输入样例】

    1
    2
    3
    4
    0

    【输出样例】

    1
    2
    4
    7

    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    满分代码

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     long long n,a[76],i=1;//本题数据范围超出int,要用long long
     6     a[1]=1;a[2]=2;a[3]=4;//求出递推边界
     7     while (n)
     8     {
     9         
    10         cin>>n;
    11         if(n==0)break;
    12         for(int j=4;j<=n;j++)
    13         {
    14             a[j]=a[j-1]+a[j-2]+a[j-3];//由于第n级楼梯可以由第n-1,n-2,n-级楼梯一步跨上,所以第到达n级楼梯的方法为到达第n-1,n-2,n-3级楼梯的方法数之和
    //得出递推式为:f(n)=f(n-1)+f(n-2)+f(n-3) 当n=4时,f(n)=4+2+1=7,以此类推
    15 } 16 cout<<a[n]<<endl; 17 } 18 return 0; 19 }
  • 相关阅读:
    Swift
    遇到奇怪的问题,帮助威猛答案,表单提交的文件提交的无限数据问题
    对于思考小端和大端字节顺序
    圈真的决定你的未来?
    坦克大战
    android visible invisible和gone差异
    编程之美2: 二进制重建
    WCF分布式事务(EF)
    Android+NDK+OpenGLES开发环境配置
    struts2和struts1认识
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13530947.html
Copyright © 2011-2022 走看看