运行结果:
代码:
import java.util.Scanner;
public class Step {
public static void main(String[] args) {
System.out.print("请输入楼梯的数量n:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
stair(n);
System.out.print("有"+stair(n)+"种走法");
}
private static int stair(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
return stair(n-1)+stair(n-2);
}
}
思路:
分析题目可以知道,n必须是正整数,所以,当n<0时就返回0;
当台阶n的数量是1时,只有一种走法,就是走一步;
当台阶n的数量是2时,有两种走法,可以一步一步的走,也可以一下子走两步;
当台阶n的数量是3时,有三种走法……
当台阶n的数量是4时,有5种走法……
以此类推,容易发现,当n>=3时,走法是前两个台阶数量走法的和,所以容易得到递推公式。