package MOOC;
import java.util.Scanner;
/**
爬楼梯:
舒老师爬楼梯,他恶意每次走1级或者2级,输入楼梯级数,求不同的走法数
输入样例:
3
输出样例:
3
输入样例:
5
输出样例:
8
* @author Vivinia
*
* 2018年2月11日
*/
public class ToValue {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
input.close();
System.out.println(stairs(n));
}
private static int stairs(int n) {
if(n==1)
return 1; //只剩一级台阶,一种走法
else if(n==2)
return 2; //只剩两级台阶,两种走法
else
return stairs(n-1)+stairs(n-2); //n级台阶的走法=先走一级后,n-1级台阶的走法+先走两级后,n-2级台阶的走法 f(n)=f(n-1)+f(n-2)
}
}
1.理解递归公式:n级台阶的走法=先走一级后,n-1级台阶的走法+先走两级后,n-2级台阶的走法 f(n)=f(n-1)+f(n-2);
2.注意边界条件,有多种取法,n等于1和2最直观容易理解;