java古典问题兔子生崽:有一对兔子从出生后第3个月起每个月都生一对兔子小兔子长到第三个月后每个月又生一对兔子假如兔子都不死问每个月的兔子总数为多少?输出前40个月即可
可以使用递归来解决这个问题。
首先,我们可以定义一个递归函数来计算每个月的兔子总数。假设第n个月的兔子总数为f(n),那么可以根据题目中的规律得到递归公式:
f(n) = f(n-1) + f(n-2)
其中,f(n-1)表示第n-1个月的兔子总数,f(n-2)表示第n-2个月的兔子总数。这是因为第n个月的兔子总数等于上个月的兔子总数加上上上个月的兔子总数。
接下来,我们需要定义递归的终止条件。根据题目的描述,第1个月和第2个月的兔子总数都是1对,所以我们可以设置递归终止条件为:
f(1) = 1 f(2) = 1
最后,我们可以使用一个循环来输出前40个月的兔子总数。
以下是使用Java代码实现这个问题的示例:
public class Rabbit {
public static void main(String[] args) {
for (int i = 1; i <= 40; i++) {
System.out.println("第" + i + "个月的兔子总数为:" + getTotalRabbits(i));
}
}
public static int getTotalRabbits(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return getTotalRabbits(n - 1) + getTotalRabbits(n - 2);
}
}
}
运行以上代码,即可输出前40个月的兔子总数。
原文地址: http://www.cveoy.top/t/topic/i4AI 著作权归作者所有。请勿转载和采集!