主题:帮个忙
高峰
[专家分:0] 发布于 2005-07-23 09:35:00
编程产生序列的前100项。该序列的第一项为0;第二项为1;以后的奇数项为其前两项之和;偶数项为前两项之差。(注意该序列的元素不是一样大,不是周期函数)
回复列表 (共5个回复)
沙发
口口and枕头 [专家分:1550] 发布于 2005-07-23 12:20:00
我觉得是不是有问题答案是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.
板凳
davidw017 [专家分:4170] 发布于 2005-07-23 15:16:00
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 楼
口口and枕头 [专家分:1550] 发布于 2005-07-23 16:41:00
哦~~~
精彩`~~精彩~~~~
4 楼
口口and枕头 [专家分:1550] 发布于 2005-07-23 16:51:00
改了一下~~~~楼上的答案和我不太一样~~~
我认为是你错了~
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 楼
口口and枕头 [专家分:1550] 发布于 2005-07-23 17:02:00
我们不同,关键在于前两项之差上,到底是这两项中的哪一项作为被减数.
当然我的理解不一定对,只是小作了一些修改~
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.
我来回复