Cho một mảng a có n số nguyên. Một đoạn con của a là một dãy các phần tử tăng liên tiếp (dãy con >= 2 phần tử). Hãy đểm số dãy con tăng liên tiếp của

Cho một mảng a có n số nguyên. Một đoạn con của a là một dãy các phần tử tăng liên tiếp (dãy con >= 2 phần tử). Hãy đểm số dãy con tăng liên tiếp của mảng a. (Với mảng a nhập từ bàn phím và viết chương trình bằng ngôn ngữ pascal)
Ví Dụ: Mảng A là: 1 2 3 4 4 1 4
—> Trong mảng có 2 dãy con tăng (1,2,3,4 ) và (1,4)

0 bình luận về “Cho một mảng a có n số nguyên. Một đoạn con của a là một dãy các phần tử tăng liên tiếp (dãy con >= 2 phần tử). Hãy đểm số dãy con tăng liên tiếp của”

  1. uses crt;
    var a:array[1..1000] of longint;
        i,n,j,dem:word;
    begin
        clrscr;
        repeat
            write(‘n=’);readln(n);
        until n>=2;
        for i:=1 to n do read(a[i]);
        readln;
        i:=1;
        while i<=n do
           begin
               j:=i+1;
               while a[j]>a[j-1] do inc(j);
               if j-1>i then inc(dem);
               i:=j;
           end;
        writeln(dem);
    readln;
    end.

    Bình luận
  2. *Chỉ in kết quả đếm:

    program day_tang;
    uses crt;
    var A:array[1..10000] of integer;
        n,i,j,d:integer;
    begin
            clrscr;
            write(‘Nhap n: ‘);  readln(n);
            for i:=1 to n do
                    begin
                            write(‘A[‘,i,’]= ‘);  readln(A[i]);
                    end;
            d:=0; i:=2;
            while i<=n do
                    begin
                            j:=i;
                            while A[i]>A[i-1] do inc(i);
                            if i<>j then d:=d+1;
                            i:=i+1;
                    end;
            write(d);
            readln;
    end.

    *In luôn dãy con

    program day_tang;
    uses crt;
    var A:array[1..10000] of integer;
        n,i,j,d,k:integer;
    begin
            clrscr;
            write(‘Nhap n: ‘);  readln(n);
            for i:=1 to n do
                    begin
                            write(‘A[‘,i,’]= ‘);  readln(A[i]);
                    end;
            d:=0; i:=2;
            while i<=n do
                    begin
                            j:=i;
                            while A[i]>A[i-1] do inc(i);
                            if i<>j then
                                    begin
                                            d:=d+1;
                                            for k:=j-1 to i-1 do write(A[k],’ ‘);
                                            writeln;
                                    end;
                            i:=i+1;
                    end;
            write(d);
            readln;
    end.

    Bình luận

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