您的位置:首页 > 其它

数学回味系列之15 - 兔子繁殖问题

2017-02-25 23:09 260 查看
问题提出:

       著名意大利数学家Fibonacci曾提出一个问题: 有一对小兔子,从出生两个月后(第3个月起)开始每个月都生一对兔子。 小兔子两个月后(第3个月起)开始每个月又生一对兔子。按此规律, 假设没有兔子死亡,第一个月有一对刚出生的小兔子, 问第n个月有多少对...

解题思路:

       定义第n个月后,兔子数量为 rabbit(n)。

       rabbit(n) 是第n个月之前兔子数与第n个月出生的兔子数之和。

       即:  rabbit(n)  = rabbit(n-1) + born(n)

       而 第n个月出生的兔子,恰好等于 第n-2个月的兔子数量,因为超过两个月的兔子才能繁殖,并且繁殖一对。

       So: rabbit(n)  = rabbit(n-1) + rabbit(n-2)

       公式有了,给个 example:

       1  1  2  3  5  8  13  21  34  55 ……

给出代码:

/* linolzhang 2009.04
Rabbit -> fibonacci
*/
#include <stdio.h>

int fibonacci(int n)
{
if(n==1 || n==2)
return 1;
return fibonacci(n-1) + fibonacci(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fibonacci(n));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息