Un vector ordonat crescător are componente intr-o progresie aritmetică.Un singur element lipsește din progresie (sigur nu primul si nici ultimul).Folosind tehnica reducerii ,identificați elementul lipsa
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int main()
{
int v[100], n, i;
cin>>n;
for(i=1; i<=n; i++)
cin>>v[i];
/* Aflu diferenta dintre primul si al doilea element,
respectiv al doilea si al treilea, iar minimun dintre
cele doua valori este ratia progresiei */
int dif12 = v[2] - v[1];
int dif23 = v[3] - v[2];
int r = (dif12<dif23)? dif12:dif23;
/* Parcurg elementele vectorului si aflu locul in care
lipseste un element al progresiei */
for(i=1; i<=n-1; i++)
if(v[i+1] != v[i]+r)
{
cout << v[i+1] - r;
return 0;
}
}
Sper ca te-am ajutat!
using namespace std;
int main()
{
int v[100], n, i;
cin>>n;
for(i=1; i<=n; i++)
cin>>v[i];
/* Aflu diferenta dintre primul si al doilea element,
respectiv al doilea si al treilea, iar minimun dintre
cele doua valori este ratia progresiei */
int dif12 = v[2] - v[1];
int dif23 = v[3] - v[2];
int r = (dif12<dif23)? dif12:dif23;
/* Parcurg elementele vectorului si aflu locul in care
lipseste un element al progresiei */
for(i=1; i<=n-1; i++)
if(v[i+1] != v[i]+r)
{
cout << v[i+1] - r;
return 0;
}
}
Sper ca te-am ajutat!
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Alte limbi străine,
8 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă