在有序数列中找前三项的和。
program SearchSum;
var
s, i, n, low, high, mid : integer;
a : array[1 .. 100] of integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
s := a[1]+a[2]+a[3];
low := 1;
high := n;
writeln('Sum of 3rd: ', s);
while (low <= high) do
begin
mid := (low+high) div 2;
if s < a[mid] then
high := mid-1
else if s > a[mid] then
low := mid+1
else
begin
writeln('Place: ' , mid);
break;
end;
end;
if a[mid] <> s then
writeln('Don''t find');
readln;
readln;
end.
var
s, i, n, low, high, mid : integer;
a : array[1 .. 100] of integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
s := a[1]+a[2]+a[3];
low := 1;
high := n;
writeln('Sum of 3rd: ', s);
while (low <= high) do
begin
mid := (low+high) div 2;
if s < a[mid] then
high := mid-1
else if s > a[mid] then
low := mid+1
else
begin
writeln('Place: ' , mid);
break;
end;
end;
if a[mid] <> s then
writeln('Don''t find');
readln;
readln;
end.


浙公网安备 33010602011771号