题目描述:
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1
输入
2
输出
2
示例2
输入
10
输出
89
解题思路:
- 当只有一格楼梯的时候,只有一种走法。
- 当有两格楼梯的时候,有两种走法。
- 当有三格楼梯的时候,乐乐可以从第一级直接走上来(因为他可以直接走两级)【1种】,也可以选择从第二级走上来(那么他就直接走一级)【2种】,一共是1+2种走法。
- 当有四格楼梯的时候,乐乐可以从第二级直接走上来(因为他可以直接走两级)【2种】,也可以选择从第三级走上来(那么他就直接走一级)【3种】,一共是2+3种走法。
- 所以可以发现,他其实遵循的是斐波那契数列:1,2,3,5,8,13…
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner in =new Scanner (System.in);
int n=in.nextInt();
System.out.print(fun(n));
}
//斐波那契数列函数,用递归实现
public static int fun(int n){
if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return fun(n - 1) + fun(n - 2);
}
}