Hãy tạo một dãy gồm 10 số nguyên được tạo ngẫu nhiên từ n (1≤n≤15). Viết chương trình tìm dãy con liên tiếp tăng dài nhất (dãy con tăng phải có ít nhất hai phần tử). Kết quả ghi vào tệp DAYCON.OUT là các phần tử của dãy con tìm được. Nếu không có dãy con tăng nào thì ghi KHONG. Nếu có nhiều dãy con dài nhất thì ghi luôn các phần tử của dãy con đó vào têp ở dòng tiếp theo.

1 câu trả lời

var a:array[1..1000] of longint;
    i,n,j,dem,d,c:word;
    f:text;
const fo='DAYCON.OUT';
begin
    randomize;
    repeat
        write('n=');read(n);
    until (1<=n) and (n<=15);
    for i:=1 to 10 do a[i]:=random(n);
    i:=1;
    d:=1;c:=1;
    while i<=10 do
       begin
           j:=i+1;
           while a[j]>a[j-1] do inc(j);
           if j>i+1 then
              if j-i>c-d then
                 begin
                     c:=j-1;
                     d:=i;
                     inc(dem);
                 end;
           i:=j;
       end;
    assign(f,fo);rewrite(f);
    for i:=1 to 10 do write(f,a[i],' ');
    writeln(f);
    if dem>0 then
       begin
           for i:=d to c do write(f,a[i],' ');
       end
    else writeln(f,'KHONG');
    close(f);
end.

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