Cho dãy số nguyên (a1,a2,..an) Yêu Cầu: tìm 2 số nguyên liên tiếp trong dãy a: ap, ap+1 có giá trị tuyệt đối của tổng là bé nhất Dữ liệu vào: trong file summin.inp gồm 2 dòng - dòng 1 chứa số nguyên N (2<=N<=10000) - dòng 2 chứa n số nguyên a1,a2,...an theo đúng thứ tự cách nhau 1 dấu cách (|ai|<=1000) dữ liệu ra: xuất trong file summin.out -dòng 1: ghi tổng tìm được - dòng 2: ghi 2 vị trí p và p+1 nhỏ nhất vd summin.inp summin.out 5 1 2 3 9 -2 3 4 5 Giair thích ý tưởng luôn với ạ ko cần dùng file hay text nha

2 câu trả lời

Tìm 1 bị trí i sao cho abs(a[i] + a[i+1]) là nhỏ nhất

uses crt;
var i,n,p,min:longint;
    a:array[0..10000] of longint;
begin
    clrscr;
    readln(n);
    for i:=1 to n do read(a[i]);
    min:=5000;
    p:=0;
    for i:=1 to n-1 do
        if abs(a[i] + a[i+1]) < min then
            begin
                min:=abs(a[i] + a[i+1]);
                p:=i;
            end;
    writeln(min);
    writeln(p,' ',p+1);
readln;
end.

var a:array[0..10000] of longint;
    i,n,vt,mi:longint;
begin
readln(n);
for i := 1 to n do read(a[i]);
mi:=10007;
for i := 1 to n-1 do
begin
 if (mi > abs(a[i]+a[i+1])) then mi :=abs(a[i]+a[i+1]);
 vt:=i;
end;
writeln(mi);
writeln(vt,#32,vt+1);
readln;readln;
end.

Câu hỏi trong lớp Xem thêm