在有序数列中找前三项的和。

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.
posted @ 2010-01-21 18:53  SmartIOI  阅读(104)  评论(0)    收藏  举报
本站采用CC授权如需转载、引用文章,请务必附上作者及来源处。 Creative Commons License