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

#1151 VerifEgaleDivImp de pe pbinfo:
Cerinţa
Se dă un vector cu n elemente numere naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele vectorului sunt egale.

Date de intrare
Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele vectorului.

Date de ieşire
Programul afișează pe ecran mesajul DA, dacă vectorul are toate elementele egale, sau NU, în caz contrar.

Restricţii şi precizări
1 ≤ n ≤ 500
fiecare element al vectorului va avea cel mult patru cifre

Răspunsuri la întrebare

Răspuns de pmarian98
3

Răspuns:

# include <iostream>

using namespace std;

int n, v[505];

void citire(int &n, int v[])

{

   cin>>n;

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

       cin>>v[i];

}

int divide(int v[], int st, int dr)

{

   if(st == dr)

       return 1;

   else

   {

       int mij = (st + dr)/2;

       int R1 = divide(v, st, mij);

       int R2 = divide(v, mij+1, dr);

       if( R1==R2 && R1 == 1 && v[st] == v[dr])

           return 1;

       else

           return 0;

   }

}

int main()

{

    citire(n, v);

    if(divide(v, 1, n)==1)

       cout<<"DA";

    else

       cout<<"NU";

    return 0;

}

Explicație:

Alte întrebări interesante