这到题,开始用递归,可是时间超出,于是在主函数中循环解决问题。
Problem Description
Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such:
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Your program should be able to handle values of n in the range 0 to 50.
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Your program should be able to handle values of n in the range 0 to 50.
Input
Each test case consists of one integer n in a single line where 0≤n≤50. The input is terminated by -1.
Output
Print out the answer in a single line for each test case.
Sample Input
3 4 5 -1
Sample Output
2 3 5you can use 64bit integer: __int64HintNote:import java.util.Scanner; public class POJ2072 { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()) { int a = cin.nextInt(); if (a == -1) break; // System.out.println(Fibbonacci(a)); long f = 0; long f1 = 0; long f2 = 1; if (a == 0) f = f1; if (a == 1) f = f2; if (a > 1) { for (int i = 1; i < a ; i ++) { f = f1 + f2; f1 = f2; f2 = f; } } System.out.println(f); } } public static int Fibbonacci(int n) { if (n == 0) return 0; else if (n == 1) return 1; else if (n != 0 && n != 1) return Fibbonacci(n - 1) + Fibbonacci(n - 2); return 0; } }