zoukankan      html  css  js  c++  java
  • openjudge-4017 爬楼梯

    总时间限制: 

    1000ms

    内存限制: 

    65536kB

    描述

    树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数
    例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级
    也可以第一次走两级,第二次走一级,一共3种方法。

    输入

    输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30

    输出

    不同的走法数,每一行输入对应一行输出

    样例输入

    5
    8
    10

    样例输出

    8
    34
    89

    对于问题的分类 :

    我们每次可以走两种情况,即走一步和走两步,那走一步的时候,还剩下n-1阶没走,那就可以知道方案数就等于 n-1 阶的方案数。

    然后是第一步走两步的情况,那还剩下n-2阶没走,那同理,方案数就为 n-2 阶的方案数。

    所以当阶数为n的时候,我们就可以知道,方案数就是 f(n-1) +  f(n-2)。

    递归的方程找到以后,我们就要找递归的边界条件了。易知,当阶数为一的时候,方案数为 1 。当阶数为 2 的时候方案数为 2。

    然后递归就解决了。

    #include <iostream>
    using namespace std;
    int N;
    int stairs(int n)
    {
    	if (n==1)
    		return 1;
    	if (n==2)
    		return 2;
    	return stairs(n-1)+stairs(n-2);
    }
    int main()
    {
    	while (cin>>N) {
    		cout<<stairs(N)<<endl;
    	}
    	return 0;	
    }
  • 相关阅读:
    Linux 安装 iptables防火墙
    CentOS最常用命令及快捷键整理
    WebAPI 和 webservice接口
    Linux 文件权限
    Linux查看系统信息的一些命令及查看已安装软件包的命令
    navicat连接虚拟机(centos)中的mysql
    Nmap扫描与Tcpdump抓包分析
    python 识别验证码自动登陆
    iptables开通某些端口
    hive的安装和使用
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/10211366.html
Copyright © 2011-2022 走看看