1 import java.util.Scanner;
2
3 /**
4 * Created by Administrator on 14-5-13.
5 * 超级楼梯
6 Problem Description
7 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
8
9 Input
10 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数
11
12 Output
13 对于每个测试实例,请输出不同走法的数量
14
15 Sample Input
16 2
17 2
18 3
19
20 Sample Output
21 1
22 2
23 */
24 public class SuperStairs {
25 public static void main(String[] args){
26 String tempStr="";
27 int tempInt=0;
28 int[] tempArray={0};
29 Scanner scanner=new Scanner(System.in);
30 tempStr=scanner.nextLine();
31 try{
32 tempInt=Integer.parseInt(tempStr);
33 tempArray=new int[tempInt];
34 }catch (NumberFormatException e){
35 System.out.println("输入有误");
36 }
37 for(int i=0;i<tempInt;i++) {
38 String s = scanner.nextLine();
39 try {
40 int temp=Integer.parseInt(s);
41 tempArray[i]=temp;
42 }catch (NumberFormatException e){
43 System.out.println("输入有误");
44 }
45 }
46 for(int i=0;i<tempInt;i++){
47 System.out.println(countStatirs(tempArray[i]));
48 }
49 }
50 public static int countStatirs(int temp){
51 if(temp==0)
52 return 0;
53 else if(temp==1)
54 return 1;
55 else if(temp==2)
56 return 1;
57 else
58 return countStatirs(temp-1)+countStatirs(temp-2);
59 }
60 }