# PBinfo #1153 – VerifNrParCifreDivImp – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Darius

## Enunț

Cerinţa
Se dă un şir cu n elemente, numere  naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele şirului au număr par de cifre.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran mesajul DA, dacă toate elementele şirului au număr par de cifre, respectiv NU în caz contrar.

Restricţii şi precizări

1 ≤ n ≤ 100
elementele şirului sunt numere naturale nenule cu cel mul  9 cifre

Exemplu:
Date de intrare

5
2820 82 65 1026 84
Date de ieșire

DA

## Cod sursă C++

```cpp
# include <iostream>
using namespace std;
int n, v[105];
void citire(int &n, int v[])
{
    cin>>n;
    for(int i = 1; i <= n ; i++)
        cin>>v[i];
}
int nrcif( int st, int dr, int v[])
{
    if(st == dr)
    {
        int cnt = 1;
        while( v[st] > 9)
            v[st] /= 10, cnt++;
        if(cnt%2 == 0)
            return 1;
        else
            return 0;
    }
    else
    {
        int m = (st+dr)/2;
        int R1 = nrcif(st, m, v);
        int R2 = nrcif(m+1, dr, v);
        if( R1 && R2)
            return 1;
        else
            return 0;
    }
}
int main()
{
    citire(n, v);
    if(nrcif(1, n, v))
        cout<<"DA";
    else
        cout<<"NU";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1153)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1153/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1153/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
