【题目描述】
一般而言,兔子在出生2个月后就有繁殖能力,一对兔子每个月能生出一对小兔子来,如果所有兔子都不死,那么经过n个月总共有多少对兔子?
【输入描述】
输入由多组测试数据组成。第一行输入一个整数t,表示测试数据的组数。
接下来的t行,每行输入一个月份n。
【输出描述】
输出有t行,每行依次对应一个月份n的输出结果:经过n个月,每个月有多少对兔子。
【输入样例】
3
5
10
13
【输出样例】
1 1 2 3 5
1 1 2 3 5 8 13 21 34 55
1 1 2 3 5 8 13 21 34 55 89 144 233
public class Rabbit
{
final static int N=30;
static long f[] = new long[N];
/*斐波那契数组*/
public static void fibonacciArray(int n)
{
f[0]=1;
f[1]=1;
for(int i =2;i < n;i++)
{
f[i]=f[i-2]+f[i-1]; //数组的第三个数开始为前两个数的和
}
// System.out.println(java.util.Arrays.toString(f)); //把数组转化成String输出
}
public static void print(long[] array)
{
for(int i=0;i<array.length;i++)
{
if(array[i]==0)
break;
System.out.print(array[i]+" ");
}
System.out.println();
for(int j=0;j<array.length;j++){
array[j]=0;
}
}
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int j=in.nextInt();
int []n=new int[j];
for(int i=0;i<=n.length-1;i++){
n[i]=in.nextInt();
}
for(int k=0;k<=n.length-1;k++){
fibonacciArray(n[k]);
print(f);
}
}
}