# PBinfo #1842 – CreareNumarRec – Rezolvare C++

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

## Enunț

Cerinţa
Scrieți definiția completă a subprogramului recursiv F, care primește prin intermediul parametrului n un număr natural nenul (1≤n≤9), iar prin intermediul parametrului a, un tablou unidimensional care conţine n valori naturale, fiecare dintre acestea reprezentând câte o cifră a unui număr. Astfel,  a0 reprezintă prima cifră a numărului, a1 a doua cifră, etc.

Subprogramul furnizează prin parametrul k o valoare naturală egală cu numărul obţinut din cifrele pare memorate în tabloul a sau valoarea -1 dacă în tablou nu există nicio cifră pară.

Restricţii şi precizări

0 < n < 10
numele subprogramului cerut este F
parametrii sunt, în această ordine: n, a, k
elementele vectorului a sunt indexate de la zero
valoarea lui k nu va depăși 2000000000
se recomandă realizarea unei soluții recursive

Exemplu:
Dacă n=6 și a= (2, 3, 5, 6, 4, 1), după apel k=264.

Important
Soluţia propusă va conţine doar definiţia subprogramului cerut. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
void F(int n,int *a, int &k){
	if(n == -1)
      	k = -1;
  	else{
      	F(n-1, a, k);
      	if(a[n-1] % 2 == 0)
          	if(k == -1)
          		k = a[n-1];
          	else
          		k = k * 10 + a[n-1];
    }
}
```

## Resurse

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