【九度OJ1511】斐波那契數列

題目描述:

你們都知道斐波那契數列,如今要求輸入一個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義以下: java

輸入:

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

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

輸出:

對應每一個測試案例, code

輸出第n項斐波那契數列的值。 遞歸

注:本題用遞歸會運行超時,n 很大時就會超出int的範圍須要用long

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

public class Main {

	public static long f(int n){
		long[] a = new long[n+2];
		a[0] = 0;
		a[1] = 1;
		int pos = 2;
		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));
		}
	}

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