Rezolvare completă PbInfo #1842 CreareNumarRec

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.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema CreareNumarRec :

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];
    }
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1842 CreareNumarRec

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1842 CreareNumarRec de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!