1842 - CreareNumarRec

From Bitnami MediaWiki
Revision as of 16:30, 21 March 2023 by Cata (talk | contribs) (Pagină nouă: == 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ţ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

Rezolvare

<syntaxhighlight lang="python"> def F(n, a, k):

   if n == 0:
       return k
   elif a[n-1] % 2 == 0:
       if k == -1:
           k = a[n-1]
       else:
           k = int(str(a[n-1]) + str(k))
   return F(n-1, a, k)

</syntaxhighlight>