有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题
public static void main(String[] args) {
/* 第一种做法
System.out.println("第1个月的兔子数量为:1对");
System.out.println("第2个月的兔子数量为:1对");
int rabbit1 = 1, rabbit2 = 1;
int temprabbit; //临时存放
int mouth = 24; //截止到第24个月
for (int i = 3; i <= mouth; i++) {
temprabbit = rabbit2;
rabbit2 = rabbit1 + rabbit2;
rabbit1 = temprabbit;
System.out.println("第" + i + "个月的兔子数量为:" + rabbit2 + "对。");
} */
//第二种解法:利用数组来计算,首先用数组存放兔子数量,然后用前两个数组之和等于第三个数组。
int arr[] = new int[25];
arr[0] = 1; //第一个月兔子的数量
arr[1] = 1; //第二个月兔子的数量
//对数组进行遍历
for (int i = 2; i < arr.length; i++) {
//斐波那契数列规律前两个数之和等于第三个数,当前月是前两个月兔子之和
arr[i] = arr[i - 2] + arr[i - 1];
System.out.println("第" + (i + 1) + "个月出生的小兔子数量为:" + arr[i]*2);
}
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。