zoukankan      html  css  js  c++  java
  • hdu2041超级楼梯

    超级楼梯

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 21254    Accepted Submission(s): 10893

    Problem Description
    有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
    Input
    输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
    Output
    对于每个测试实例,请输出不同走法的数量
    Sample Input
    2 2 3
     

    Sample Output
    1 2
     
    /*看出这是经典的斐波那契数列的模型。还有一种最原始的模型是生兔子的问题。
    
    下面是刘汝佳白书中的解释:
    
    n个台阶的走法分为二两类。
    
    第一类:第一次走1阶。剩下还有n-1阶要走,有f(n-1)种方法。
    
    第二类:第一次走2阶。剩下还有n-2阶要走,有f(n-2)种方法。
    
    这样,就得到了递推式:f(n)=f(n-1)+f(n-2)。
    
    当然也可认为边界是f(0)=f(1)=1。这样把前几项列出来:1,1,2,3,5,8……*/


    #include <stdio.h>
    int main()
    {
        int n;
        scanf("%d",&n);
        while(n--)
        {
            int m,i,f=0,s=1,t;
            scanf("%d",&m);
            for(i=1;i<m;i++)
            {
                t=f;
                f=s;
                s=t+s;
            }
            printf("%d\n",s);
        }
        return 0;
    }
    

  • 相关阅读:
    第四周作业
    RHEL6+GFS2+MYSQL高可用
    第三周作业
    第二周作业
    centos7 安装redis 开机启动
    无线网卡连接网络后共享给本地有线网卡使用(Win10)
    第一周作业
    2019.8.13加入博客园
    智力题
    Python入门基础学习(模块,包)
  • 原文地址:https://www.cnblogs.com/unclejelly/p/4082176.html
Copyright © 2011-2022 走看看