你們都知道斐波那契數列,如今要求輸入一個整數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)); } } }