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.
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>