c语言兔子繁殖问题(斐波那契数列)
时间: 2023-08-04 15:12:05 浏览: 119
C语言解答经典的数学问题兔子繁衍问题即斐波那契数列问题
兔子繁殖问题是经典的递归问题,可以用斐波那契数列来解决。斐波那契数列是一个数列,每个数都是前两个数的和。例如,前10个斐波那契数列如下:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
在兔子繁殖问题中,每对兔子每个月可以生一对小兔子,并且小兔子出生后第二个月开始也可以生小兔子。假设初始有一对兔子,问n个月后有多少对兔子?
我们可以用递归的方式求解,每个月兔子数量为前两个月兔子数量之和。代码如下:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) { // n=0 或者 n=1,返回1
return 1;
} else { // n>1,返回前两个月兔子数量之和
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入月份:");
scanf("%d", &n);
printf("%d个月后有%d对兔子\n", n, fibonacci(n-1));
return 0;
}
```
需要注意的是,斐波那契数列的第一项和第二项都是1,所以在计算第n个月的兔子数量时,实际上是计算斐波那契数列的第n-1项。
阅读全文