题目描述
NowCoder小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。
但年幼的他一次只能走上一阶或者一下子蹦上两阶。
现在一共有N阶台阶,请你计算一下NowCoder从第0阶到第N阶共有几种走法。
输入描述:
输入包括多组数据。每组数据包括一个整数n, (1≤n≤90)。
输出描述:
对应每个输入包括一个输出。
为redraiment到达第n阶不同走法的数量。
输入例子:
1
2
输出例子:
1
2
实现代码:
import java.util.Scanner;
public class Main {
/**
* 现在一共有N阶台阶,请你计算一下NowCoder从第0阶到第N阶共有几种走法。
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int n = scanner.nextInt();
long count = countJt(n);
System.out.println(count);
}
}
/**
* @param n
* @return
*/
private static long countJt(int n) {
if (n==1) {
return 1;
}
if (n==2) {
return 2;
}
long count1 = 1;
long count2 = 2;
long count = 0;
int i = 3;
while(i<=n){
count = count1+count2;
count1 = count2;
count2 = count;
i++;
}
return count;
}
}
典型的斐波那契数列,不需多说,数学归纳法啊,万能的方法。。。