9.29.2017

Dãy con tăng dần

(Khối 10 - Chuyên Lê Hồng Phong - TP HCM - 2004. Một dãy số a1, a2, a3, ….., an được gọi là dãy tăng nếu a1<=a2<=a3……<=an. Cho một dãy gồm tối đa  n số (1<=n<=10000) . Viết chương trình  tìm chiều dài dãy con liên tiếp tăng dần dài nhất trong dãy nói trên.
                                                                 Giải
Var a: array[1..g] of real;   i,n,vt,dd,dem: Integer;  t:real;
BEGIN
   Write('Nhap so phan tu: '); Readln(n);
   For i:=1 to n do
       begin
           Write('Nhap phan tu thu ',i,' : '); readln(a[i]);
       end;
   For i:=1 to n-1 do
       begin
           if a[i+1] - a[i] <> t then
               begin
                   t:=a[i+1]-a[i];
                   If (dem + 1) > dd Then
                       begin vt:=i-dem; dd:=dem+1; end;
                   dem:=1;
               end
           Else dem:=dem+1;
       end;
   If (dem + 1) > dd Then
       begin vt:=i-dem+1; dd:=dem+1; end;
   Write('Day con dai nhat la: '); for i:=vt to vt+dd-1 do write(a[i]:1:2,'; ');
   Write('Co tat ca ',i,' phan tu'); Readln;
END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét