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.