Informatică, întrebare adresată de alesyo, 9 ani în urmă

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 alexandruhodor
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!

Alte întrebări interesante