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

本文通过一个经典的数学问题——兔子繁殖问题,引出了斐波那契数列的概念及其递推公式。并提供了一个使用C语言实现的递归算法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题提出:

       著名意大利数学家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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值