您的位置:首页 > 编程语言 > Java开发

【九度OJ1388】斐波那契数列之跳台阶

2013-10-17 00:00 513 查看
题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

输入:
输入可能包含多个测试样例,对于每个测试案例,

输入包括一个整数n(1<=n<=70)。

输出:
对应每个测试案例,

输出该青蛙跳上一个n级的台阶总共有多少种跳法。

分析:
从后往前分析,青蛙完成最后一步有两个选择:跳一个或跳两个,则完成最后一步的所有方法为:完成最后一步的跳法加上完成最后第二步的跳法;因此可以得到递推公式为:

s(n) = s(n-1)+s(n-2);
s(1) = 1;
s(2) = 2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

/**
* 斐波那契数列之青蛙跳台阶
* @author aqia358
*
*/
public class Main {

public static long f(int n){
long[] a = new long[n+2];
a[1] = 1;
a[2] = 2;
int pos = 3;
while(pos <= n){
a[pos] = a[pos-1] + a[pos-2];
pos++;
}
return a
;
}
public static void main(String[] args) throws IOException {
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
while(st.nextToken() != st.TT_EOF){
System.out.println(f((int)st.nval));
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息