假设现在有一只兔子,它每个月都能生出一对小兔子(假设每对小兔子都是一雌一雄),而每对小兔子出生后的第二个月起就开始生小兔子。 经过N个月后,一开始的那只兔子和它的后代共有多少只兔子。 输入格式: 经历月份 输出格式: 兔子后代只数使用简单的C语言
时间: 2024-10-20 15:15:57 浏览: 51
这是一个经典的“斐波那契”数列问题,也涉及动态规划的思想。在C语言中,你可以创建一个数组来存储每个月兔子的数量,因为每个月的总兔子数等于前两个月兔子数量之和。
以下是解决这个问题的一个简单C语言函数:
```c
#include <stdio.h>
int rabbit_population(int months) {
int population[months + 1] = {0, 1}; // 初始化前两个月,分别是0和1(初始母兔和第一个月的小兔子)
for (int i = 2; i <= months; ++i) {
population[i] = population[i - 1] + population[i - 2]; // 每个月兔子的数量等于上个月和再上个月的总和
}
return population[months];
}
int main() {
int n;
printf("请输入经历的月份: ");
scanf("%d", &n);
int total_rabbits = rabbit_population(n);
printf("经过%d个月后,兔子总数为: %d\n", n, total_rabbits);
return 0;
}
```
在这个程序中,用户输入经历的月份`n`,然后`rabbit_population`函数计算并返回这个月的兔子总数。
阅读全文