# PBinfo #4260 – NrXDivImp – Rezolvare C++

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

## Enunț

Cerința
Folosind metoda Divide et Impera, scrieți funcția recursivă cu antetul

int NrXDivImp(int a[], int st, int dr, int x)
care primind ca parametri un vector a de numere întregi și trei numere întregi st, dr și x, returnează numărul de apariții ale numărului x în vectorul secvența a[st], a[st+1], ..., a[dr].

Restricții și precizări

st ≤ dr
Numele funcției este NrXDivImp.
Vectorul a este indexat de la 1
Se recomandă utilizarea metodei Divide et Impera în rezolvarea problemei.

Exemplu:
Dacă a = (2,5,1,5,3,5,5,5,7,6), atunci NrXDivImp(a, 1, 6, 5) = 3, deoarece în secvența 2,5,1,5,3,5 numărul 5 apare de 3 ori. De asemenea, NrXDivImp(a, 9, 10, 5) = 0.

Important
Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.

## Cod sursă C++

```cpp
int NrXDivImp(int a[], int st, int dr, int x)
{
    if (st > dr) return 0;
    if (st == dr) return (a[st] == x);
    int m = (st + dr) / 2;
    return NrXDivImp(a, st, m, x) + NrXDivImp(a, m + 1, dr, x);
}
```

## Resurse

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