Pascal题目,快快快

有一组数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8,且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它们的起始位置
写得好加分,看我是新手的份上,最少5分一定给!呜呜呜呜(3天以内)

var a:array[0..19] of integer=(11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8);
i,j,d,x:longint;
begin
d:=4; x:=80;
for i:=0 to 19 do
begin
if a[i]+a[(i+1)mod 20]+a[(i+2) mod 20]+a[(i+3) mod 20]>d then d:=i;
if a[i]+a[(i+1)mod 20]+a[(i+2) mod 20]+a[(i+3) mod 20]<x then x:=i;
end;
writeln(d:3);
writeln(x:3);
readln;
readln
end.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-06
var a:array[1..100] of longint;//longint比integer快
b,c,d,e:longint;
begin
readln(b);
for c:=1 to b do read(a[c]);
a[b+1]:=a[1];
a[b+2]:=a[2];
a[b+3]:=a[3];
for c:=1 to b do if a[c]+a[c+1]+a[c+2]+a[c+3]>d then begin
d:=a[c]+a[c+1]+a[c+2]+a[c+3];//d为和
e:=c;//e为起始位置
end;
writeln(e,d);
end.

参考资料:自己写的,没检验。

第2个回答  2012-05-06
var a:array[1..100] of longint;//longint比integer快
b,c,d,e:integer;
begin
readln(b);
for c:=1 to b do read(a[c]);
a[b+1]:=a[1];
a[b+2]:=a[2];
a[b+3]:=a[3];
for c:=1 to b do if a[c]+a[c+1]+a[c+2]+a[c+3]>d then begin
d:=a[c]+a[c+1]+a[c+2]+a[c+3];
e:=c;
end;
writeln(e,d);
end.