描述
一般而言,兔子在出生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
import java.util.Scanner;
public class Main {
/*
设1个月大的兔子为R1,2个月大的兔子为R2
第1个月 R1 1 R2 0 sum 1
第2个月 R1 0 R2 1 1
第3个月 R1 1 R2 1 2
第4个月 R1 1 R2 2 3
第5个月 R1 4 R2 1 5
* */
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for(int i = 0;i<arr.length;i++){
arr[i]=sc.nextInt();
}
for(int i = 0;i<n;i++){
//将兔子分类为1月大与2月大
int R1=1;
int R2=0;
int temp;
for(int k = 0;k<arr[i];k++){
System.out.print(R1+R2+" "); //第k月的兔子总数
temp = R2;
R2+=R1; //1月大的兔子长大为2月大的兔子,R2增加了R1只
R1=temp; //2月大(及以上)的兔子生兔子,R1增加了R2只(2月后才能产子,不含刚长大的R1)
}
System.out.println();
}
}
}