你们都知道斐波那契数列,如今要求输入一个整数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)); } } }