兔子生兔子问题 pascal语言!!

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:11:33
已知一对新生兔子,第三个月就开始生小兔子。假如一年内没有发生死亡,则一对兔子一年内能繁殖成多少对?
注意兔子是三个月开始才开始生小兔子,而且第一对兔子也是三个月后才开始生小兔子的。
答出再加一百~~~~~~~~~~~~
快啊~高手们~明天要用啊~~~~~·
不是斐波那契数列~斐波那契数列是两个月生一个的!!!!!!1

program work(input,output);
var
i:integer;{循环变量}
total:integer;{兔子总量}
answer:integer;{兔子对数}

begin
total:=2;

for i:=3 to 12 do
begin
total:=total+1;{第一代三月后每月生一只}
if (i-2)>=3 then total:=total+1;{第二代五月后每月生一只}
if (i-4)>=3 then total:=total+1;
if (i-6)>=3 then total:=total+1;
if (i-8)>=3 then total:=total+1;
end;

answer:=total div 2;{有多少对兔子}
writeln(answer);

end.
这个方法很简单
便于理解

数字代表着一只兔子的年龄
第一个月 1 1(不变)
第二个月 2 2(不变)
第三个月 3 3 1(有2只满3个月,生1只)
第四个月 4 4 2 1(再生1只)
第五个月 5 5 3 2 1(再生一只,有一只满3各月,但没有另一只 - -|)
第六个月 6 6 4 3 2 1 1(有4只满三个月的,生2只)
第七个月 7 7 5 4 3 2 2 1 1(情况与第五个月一样)
第八个月 8 8 6 5 4 3 3 2 2 1 1 1(生3只)
第九个月 9 9 7 6 5 4 4 3 3 2 2 2 1 1 1 1(生4只,已经很多了 - -|)
第十个月 10 10 8 7 6 5 5 4 4 3 3 3 2 2 2