题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
问题分析:
月 份: 1 2 3 4 5 6 7 8
兔子对数: 1 1 2 3 5 8 13 21
明显可知第三个月时兔子的对数等于前面两个月兔子对数之和,经过验证可知,其他月份的兔子对数也是等于前面两个月份的对数之和
public class rabbit {
public static void main(String[] args) {
Scanner sr=new Scanner(System.in);
//j用来输出该月份的兔子对数
System.out.println("请输入总的月份");
int i=sr.nextInt();
//i用来控制月份
long [] array=new long [i];
//i等于0表明是第一个月
array[0]=1;
array[1]=1;
int j;
for(j=2;j<i;j++) {
array[j]=array[j-1]+array[j-2];
System.out.println(j+1+"月份共有"+array[j]+"对兔子,"+"共有"+array[j]*2+"只兔子");
}
//k用来控制具体月份的兔子数量,比如k=7,则输出7月的兔子对数
int k=sr.nextInt();
System.out.println("输入具体月份即可查询该月份的兔子数量");
System.out.println(k+"月份共有"+array[k-1]+"对兔子,"+"有"+array[k-1]*2+"只兔子");
}
}
运行截图
经验证实验结果正确
总结:涉及到顺序和数字的,优先考虑数组,在数组中,不管是输入数据还是输出数据,都应该借助循环来实现,数组的下标是从0开始的,切记。