7-1 Fibonacci数列优化版 (10 分)
求Finonacci数列的第n项,n<=60,其中第1项为1,第2项为1。
输入格式:
输入在第一行给出一个正整数N(≤100),是待求取的数的个数。随后N行,输入n个数字num。
输出格式:
对每一组输入num,在一行中输出Finonacci数列的第num项的值。
输入样例:
在这里给出一组输入。例如:
3
3
5
6
输出样例:
在这里给出相应的输出。例如:
2
5
8
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner hl=new Scanner(System.in);
int N=hl.nextInt();
int[] num=new int[N];
for(int i=0;i<N;i++) {
num[i]=hl.nextInt();
}
for(int j=0;j<N;j++){
System.out.println((long)f(num[j]));
}
}
static double f(int n) {
if(n==1 || n==2) {
return 1;
}
double num=0.0 ,numa,numb;
numa=numb=1.0;
for(int k=3;k<=n;k++){
num=numa+numb;
numb=numa;
numa=num;
}
return num;
}
}