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ât2.000.000.000
Exemplu
Intrare
6 2 10 12 16 20 18
Ieșire
DA
Explicație
Rația este 2
, lipsesc termenii 4
, 6
, 8
, 14
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema VerifProgresie:
#include <iostream>
#include <cmath>
using namespace std;
int cmmdc(int a, int b);
int main()
{
int n, x, y, z, d;
bool ok = true;
bool ok2 = false;
cin >> n;
if (n < 2)
{
cout << "DA";
return 0;
}
if (n == 2)
{
cin >> x >> y;
if ( abs(x - y) != 1 )
cout << "DA";
else
cout << "NU";
return 0;
}
cin >> x >> y >> z;
if (x != y || y != z)
ok2 = true;
d = cmmdc( abs(x - y), abs(y - z) );
if (d == 1)
ok = false;
for (int i = 4; i <= n && ok; i++)
{
y = z;
cin >> z;
if (y != z)
ok2 = true;
d = cmmdc(d, abs(y - z) );
if (d == 1)
ok = false;
}
if (ok && ok2)
cout << "DA";
else
cout << "NU";
}
int cmmdc(int a, int b)
{
if (a == 0) return b;
if (b == 0) return a;
int r;
while ( b )
{
r = a % b;
a = b;
b = r;
}
return a;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1573 VerifProgresie
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1573 VerifProgresie de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!