大菲波数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9224 Accepted Submission(s): 3133
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
5 1 2 3 4 5
Sample Output
1 1 2 3 5
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String []args)throws Exception{ Scanner cin = new Scanner(System.in); int t = cin.nextInt(); while(t--!=0){ String a=cin.next(); int n = Integer.parseInt(a); System.out.println(fibo(n)); } cin.close(); } public static BigInteger fibo(int n){ BigInteger f = new BigInteger("1"); BigInteger s = new BigInteger("2"); if(n==1||n==2) return f; if(n==3) return s; int sum=3; while(true){ sum++; BigInteger tem = f; f=s; s=s.add(tem); if(sum==n) return s; } } }
//用java结题的时候要注意,类要命名为Main哦