例题: 爬楼梯
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,
求不同的走法数
例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一
级,第二次走两级,也可以第一次走两级,第二次走一级,一
共3种方法。
输入
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1
<= N <= 30输出不同的走法数,每一行输入对应一行
输出
不同的走法数,每一行输入对应一行输出
样例输入
5
8
10
样例输出
8
34
89
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,
求不同的走法数
例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一
级,第二次走两级,也可以第一次走两级,第二次走一级,一
共3种方法。
输入
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1
<= N <= 30输出不同的走法数,每一行输入对应一行
输出
不同的走法数,每一行输入对应一行输出
样例输入
5
8
10
样例输出
8
34
89
用阶乘 ,f(n)=f(n-1)+f(n-2) 分解成一部分
Java 代码:
import java.security.interfaces.ECKey;
import java.text.DecimalFormat;
import java.text.ParseException;
import javax.security.auth.x500.X500Principal;
import javax.swing.InputMap;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
while(scanner.hasNext()){
int n = scanner.nextInt();
System.out.println(stairs(n));
}
}
public static int stairs(int n){
if(n<0){
return 0;
}
if(n==0){
return 1;
}
return stairs(n-1)+stairs(n-2);
}
}