0822 - NrCifreZeroRec
Cerinţa
Să se scrie o funcție Python recursivă care să returneze numărul de cifre egale cu zero ale unui număr natural transmis ca parametru.
Restricţii şi precizări
- Numele funcției va fi nr_cif_zero
- Funcția va avea un parametru reprezentând numărul dat
- Numărul pentru care se calculează numărul de cifre egale cu zero va fi mai mic decât 2.000.000.000
Exemplu
nr_cif_zero(2050) este 2.
Explicație
Această funcție numără câte cifre zero sunt prezente într-un număr dat. Ea verifică dacă ultima cifră a numărului este 0 și numără această cifră dacă este cazul. Dacă ultima cifră nu este zero, se elimină ultima cifră din număr și se reapelează funcția pentru restul numărului. Acest proces se repetă până când numărul devine 0 și se returnează numărul total de cifre zero.
Rezolvare
<syntaxhighlight lang="python"> def validate_n(n):
if isinstance(n, int) and n > 0: return True else: return False
def nr_cif_zero(n):
if n == 0: return 0 if n % 10 == 0: return 1 + nr_cif_zero(n // 10) else: return nr_cif_zero(n // 10)
def main():
n = input("Introduceți un număr întreg pozitiv: ") try: n = int(n) if validate_n(n): result = nr_cif_zero(n) print(f"Numărul de cifre zero din numărul introdus este: {result}") else: print("Numărul introdus nu este valid.") except ValueError: print("Nu ați introdus un număr întreg.")
</syntaxhighlight>