Informatică, întrebare adresată de Diuva, 8 ani în urmă

VerifProgresie

Cerința
Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.

Restricții și precizări
1 ≤ n ≤ 2500
cele n numere citite vor fi mai mici decât 2.000.000.000


boiustef: trebuia să dai şi exemplul de pe pbinfo, şi atunci Mihai cred făcea un cod corect...
boiustef: Exemplu
Intrare

6
2 10 12 16 20 18
Ieșire

DA
Explicație
Rația este 2 , lipsesc termenii 4, 6, 8, 14.

Răspunsuri la întrebare

Răspuns de Mihai2628
0

Răspuns:

# include <iostream>

using namespace std;

int main()

{

   int n,i=0,a[2500],r,ok=1;

   cout<<"n=";

   cin>>n;

   for(i=1;i<=n;i++)  {

       cout<<"a["<<i<<"]=";cin>>a[i];

   }

   r=a[2]-a[1];

   for(i=2;i<=n;i++)

       if(a[i]-a[i-1]!=r)

           ok=0;

   

   if(ok==1)

       cout<<"elem sunt in prog aritmetica";

   else

       cout<<"elem nu sunt in prog aritmetica";

   return 0;

}

Explicație:


boiustef: codul nu a fost testat pe pbinfo... Mihai, testează codul ...
Alte întrebări interesante