回 帖 发 新 帖 刷新版面

主题:母牛生小牛问题

我记的好象是菲波拉数列
谁会?

回复列表 (共6个回复)

沙发

var
  a:array[-10..51]of int64;
  i,j:longint;
begin
  a[1]:=1;
  for i:=2 to 50 do
    a[i]:=a[i-1]+a[i-3];
  while not seekeof do
    begin
      read(i);
      writeln(a[i]);
    end;
end.

板凳

巧了,刚做过,我记得是动规,公式好象是(F[I]=F[I-1]+F[I-3]??)不知是否

3 楼

我记得是递推 [f(i):=f(i-1)+f(i-2)]

4 楼

递归是一个不错的方法,但是时间上是很麻烦的。
我的建议是:
用一个数组,记录下1岁的牛,2岁的牛……和成年的牛
初始化时将数组的值初始成(1,0,0)
执行n次(n为年数),每次将2岁的牛的数加到成年的牛的数里,然后递推……
最后将数组的数求和输出,即可。

5 楼

[quote]递归是一个不错的方法,但是时间上是很麻烦的。
[/quote]

不是递归, 是递推, 速度很快.

6 楼

用递推的话很快的

我来回复

您尚未登录,请登录后再回复。点此登录或注册