C语言实现:兔子产仔问题
1. 问题
13世纪意大利数学家斐波那契在他的《算盘书》中提出这样一个问题:有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对新生的兔子关在里面。已知一对两个月大的兔子以后每一个月都可以生一对小兔子,而一对新生的兔子出生两个月后才可以生小兔子(例如:1月份出生,3月份才可产仔)。假如一年内没有发生死亡,则一年内共能繁殖成多少对?
2. 解决方案
从题目中可以获取到这样两个信息:
(1)一对新生的兔子出生两个月后才可以生小兔子;
(2)一对两个月大的兔子以后每一个月都可以生一对小兔子;
(3)1月有一对新生兔;
可得以下3个关系式:
(1)式:本月的兔子数量 = 上个月的兔子数量 + 本月新增的兔子数量
(2)式:本月新增的兔子数量 = 本月已经达到生育条件的兔子数量 = (本月月份 - 2)月份的兔子数量 = 上上个月前的兔子数量
(3)式:1月兔子数量 = 2月兔子数量 = 1对
(1)(2)式合并,可得:
本月的兔子数量 = 上个月的兔子数量 + 上上个月前的兔子数量