Nhập mảnh 1 chiều gồm 100 số nguyên dương. Cho biết dãy A có là cấp số cộng không thì cần có câu lệnh: Giải giúp mình với ạ , please 🤩

2 câu trả lời

Nếu như là dãy chưa sắp xếp thì ta cần phải sắp xếp lại

Sau đó lấy mốc cấp số cộng là khoảng cách giữa phần tử 1 và phần tử 2, rồi cho chạy từ 2 đến n-1, nếu như khoảng cách giữa 2 số liền kề nhau khác mốc cấp số cộng thì dừng lại và thông báo không phải, ngược lại thì thông báo phải.

Chương trình:

program capsocong;

uses crt;

 var A:array[1..100] of integer;

       n,i,j,tg,csc:integer;

begin

     clrscr;

     write('Nhap so luong phan tu: ');  readln(n);

     for i:=1 to n do

          begin

               write('Nhap so thu ',i,': ');  readln(A[i]);

          end;

     {---sap-xep---}

     for i:=1 to n-1 do

          for j:=i+1 to n do

               if A[i]>A[j] then 

                    begin

                         tg:=A[i];

                         A[i]:=A[j];

                         A[j]:=tg;

                    end;

     {---khoang-cach---}

     csc:=A[2]-A[1];

     for i:=2 to n-1 do

          if A[i+1]-A[i]<>csc then

               begin

                    write('Khong phai');

                    break;

               end;

     if (i=n-1) and (A[n]-A[n-1]=csc) then write('Phai va cap so cong la: ',csc);

     readln;

end.

uses crt;
var i:longint; a:array[1..1000]of longint; kt:boolean;
begin
clrscr;
   kt:=true;
   for i:=1 to 100 do 
      begin
         write('Nhap phan tu thu ',i,': ');readln(a[i]);
         if (i<>1)and(a[i]-a[i-1]<>a[2]-a[1]) then kt:=false;
      end;
   if kt then writeln('Day la cap so cong') else
   writeln('Day khong la cap so cong');
readln
end.

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