4209 - DifParImpar

De la Universitas MediaWiki
Versiunea din 12 martie 2023 17:33, autor: Cata (discuție | contribuții) (Pagină nouă: == Cerința == Scrieți funcția recursivă DifParImpar care primind ca parametru un număr natural <span style="color: red;">n</span>, returnează un număr întreg reprezentând diferența dintre numărul cifrelor pare și numărul celor impare. == Restricții și precizări == * <span style="color: red;">0 ≤ n ≤ 2.147.000.000</span> * Numele funcției este <span style="color: red;">DifParImpar</span>. * Se recomandă utilizarea recursivității în rezolvarea probleme...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerința

Scrieți funcția recursivă DifParImpar care primind ca parametru un număr natural n, returnează un număr întreg reprezentând diferența dintre numărul cifrelor pare și numărul celor impare.

Restricții și precizări

  • 0 ≤ n ≤ 2.147.000.000
  • Numele funcției este DifParImpar.
  • Se recomandă utilizarea recursivității în rezolvarea problemei. De asemenea, se recomandă să nu se folosească alte funcții suplimentare.

Exemplu

DifParImpar(240) = 3 și DifParImpar(21377) = -3.

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.

Rezolvare

Varianta 1

def DifParImpar(n):
    if n == 0:
        return 0
    else:
        ultima_cifra = n % 10
        if ultima_cifra % 2 == 0:
            return 1 + DifParImpar(n // 10)
        else:
            return -1 + DifParImpar(n // 10)