A1037. 下楼问题

问题描述

  试用递归方法编程求解下楼问题的方案数:从楼上到楼下共有h个台阶,下楼每步可走1个台阶、2个台阶或者3个台阶
  问可走出多少种方案数
输入格式
  一行,只有一个整数h,4<=h<=20(其他情况输出0)
输出格式
  一行,只有一个整数,表示下楼走法的总方案数
样例输入
4
样例输出
7
输入格式
  一行,只有一个整数h,4<=h<=20
输出格式
  一行,只有一个整数,表示下楼走法的总方案数
样例输入
4

样例输出

7
package www.tsinsen.com;

import java.util.Scanner;

public class A1037 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int h=scan.nextInt();
        if(h<4||h>20) {
            System.out.println(0);
        }
        else{
            System.out.println(fun(h));
        }
    }
    public static int fun(int n) {
        if(n<0) {
            return 0;
        }
        if(n==0||n==1) {
            return 1;
        }
        return fun(n-1)+fun(n-2)+fun(n-3);
    }
}

 

 
posted @ 2018-02-06 20:15  henu小白  阅读(215)  评论(0编辑  收藏  举报