回 帖 发 新 帖 刷新版面

主题:帮个忙

编程产生序列的前100项。该序列的第一项为0;第二项为1;以后的奇数项为其前两项之和;偶数项为前两项之差。(注意该序列的元素不是一样大,不是周期函数)

回复列表 (共5个回复)

沙发

我觉得是不是有问题答案是011-1000000000000000000000000000000000000000000000
自己一步步推也是这个答案,,,,是不是我理解有问题,

program oh~~yeah~~;
var
   b:array[1..100] of integer;
   s:string;
   a:string[4];
   i,d:integer;
   n:1..100;
begin
   b[1]:=0;b[2]:=1;
   s:='01';
   for n:=3 to 100 do
    begin
       if (n mod 2=1) then begin
                              d:=b[n-1]+b[n-2];
                              str(d,a);
                              s:=s+a;
                           end
                       else
                           begin
                              i:=b[n-1]-b[n-2];
                              str(i,a);
                              s:=s+a;
                           end;
    end;
    writeln(s);
    readln;
    readln;
end.

板凳

program _;
var
  a, b, c, index: integer;
  sign: array[0..1] of integer;
begin
  a := 0; b := 1; c := 0; writeln (a, b);
  sign[0] := -1; sign[1] := 1;

  for index := 3 to 100 do begin
    c := a + b * sign[index mod 2];
    a := b; b := c; writeln(c);    
  end;
end.

3 楼

哦~~~
精彩`~~精彩~~~~

4 楼

改了一下~~~~楼上的答案和我不太一样~~~
我认为是你错了~

program oh;
var
   b:array[1..100] of integer;
   n:1..100;
begin
   b[1]:=0;b[2]:=1;
   for n:=3 to 100 do
    begin
       if (n mod 2=1) then b[n]:=b[n-1]+b[n-2]
                      else b[n]:=b[n-1]-b[n-2];

    end;
    for n:=1 to 100 do
    write(b[n]:7);
    readln;
    readln;
end.

5 楼

我们不同,关键在于前两项之差上,到底是这两项中的哪一项作为被减数.

当然我的理解不一定对,只是小作了一些修改~
program _;
var
  a, b, c, index: integer;
  sign: array[0..1] of integer;
begin
  a := 0; b := 1; c := 0; write (a:7, b:7);
  sign[0] := -1; sign[1] := 1;

  for index := 3 to 100 do begin
    c := b + a * sign[index mod 2];//这里a,b换个位答案就和我一样了~~~~
    a := b; b := c; write(c:7);
  end;
  readln;readln;
end.

我来回复

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