【九度OJ1388】斐波那契數列之跳臺階

題目描述: java

一隻青蛙一次能夠跳上1級臺階,也能夠跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 測試

輸入:

輸入可能包含多個測試樣例,對於每一個測試案例, spa

輸入包括一個整數n(1<=n<=70)。 code

輸出:

對應每一個測試案例, it

輸出該青蛙跳上一個n級的臺階總共有多少種跳法。 io

分析:
從後往前分析,青蛙完成最後一步有兩個選擇:跳一個或跳兩個,則完成最後一步的全部方法爲:完成最後一步的跳法加上完成最後第二步的跳法;所以能夠獲得遞推公式爲:


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


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[n];
	}
	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));
		}
	}

}
相關文章
相關標籤/搜索