求教:分析PASCAL题

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:19:08
题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后,每个月又生一对兔子,假设兔子都不死,问:第20个月后共有多少对兔子.
program lx;
const
n=20;
var
a0,a1,a2,i:integer;
begin
a0:=0;
a1:=1;
write(a0,a1);
for i:=2 to n do
begin
a2:=a0+a1;
write(a2);
a0:=a1;
a1:=a2;
end;
end.
请教能否给予解释,越详细越好,兄台愚顿不能理解此题的解题思路.
我是想请教以上已编出来的这段程序我不是很理解,如a0,a1,a2代表什么意思?

a0本月第一次开始出的兔子
a1除本月外,已有的可以生兔子的兔子头数
a2每月生下的兔子总头数

这是道数学题,菲波数列。
即a[0]:=0;a[1]:=1;
if i>1 then
a[i]:=a[i-1]+a[i-2];
此程序中
不断刷新a0,a1,a2。