Nhập vào mảng một chiều,hãy chọn ra hai hoặc ba phần tử có tích lớn nhất

Nhập vào mảng một chiều,hãy chọn ra hai hoặc ba phần tử có tích lớn nhất

0 bình luận về “Nhập vào mảng một chiều,hãy chọn ra hai hoặc ba phần tử có tích lớn nhất”

  1. uses crt;
    var i,n,max1,max2,max3:longint; a:array[1..10000]of longint;
    begin
    clrscr;
       write(‘Nhap n: ‘);readln(n);
       for i:=1 to n do 
          begin 
             write(‘a[‘,i,’]= ‘);readln(a[i]); 
          end;
       max1:=a[1];
       for i:=1 to n do 
          if max1<a[i] then max1:=a[i];
       writeln(‘So lon nhat la: ‘,max1);
       max2:=a[1];
       for i:=1 to n do 
          if (max2<a[i])and(a[i]<max1) then max2:=a[i];
       writeln(‘So lon nhi la: ‘,max2);
       max3:=a[1];
       for i:=1 to n do 
          if (max3<a[i])and(a[i]<max2) then max3:=a[i];
       writeln(‘So lon ba la: ‘,max3);
    readln
    end.   

    Bình luận
  2. uses crt;
    var a:array[1..10000] of longint;
        i,j,k,n:word;
        max,t:longint;
    begin
        clrscr;
        repeat
            readln(n);
        until (3<=n) and (n<=10000);
        for i:=1 to n do
           repeat
               read(a[i]);
           until abs(a[i])<=1000;
        readln;
        max:=a[1]*a[2];
        for i:=1 to n-2 do
           begin
               for j:=i+1 to n-1 do
                  begin
                      t:=a[i]*a[j];
                      if max<t then t:=max;
                      for k:=j+1 to n do
                         begin
                             t:=a[i]*a[j]*a[k];
                             if max<t then max:=t;
                         end;
                  end;
           end;
        if a[n-1]*a[n]>max then max:=a[n-1]*a[n];
        writeln(max);
    readln;
    end.

    Bình luận

Viết một bình luận