4211 - ElimZTRec
Cerința
Scrieți funcția recursivă ElimZTRec care primind ca parametru un număr natural nenul n, returnează numărul obținut prin eliminarea eventualelor cifre de 0 de la sfârșitul lui n.
Restricții și precizări
- 1 ≤ n ≤ 2.147.000.000
- Numele funcției este ElimZTRec.
- Se recomandă utilizarea recursivității în rezolvarea problemei.
Exemplu
ElimZTRec(240) = 24, ElimZTRec(123) = 123 și ElimZTRec(20500) = 205.
Explicație
Funcția ElimZTRec primește ca parametru un număr natural n și elimină zerourile de la finalul acestuia. Dacă ultima cifră a lui n este diferită de zero, funcția returnează n. În caz contrar, se apelează funcția recursiv cu n împărțit la 10.
Funcția de validare validate_n verifică dacă n este un număr natural între 1 și 2.147.000.000 (inclusiv) folosind operatorii de comparație >= și <=.
Funcția main primește un număr natural n de la tastatură, verifică dacă acesta este valid folosind funcția validate_n, elimină zerourile de la finalul lui n folosind funcția ElimZTRec și afișează rezultatul.
Rezolvare
<syntaxhighlight lang="python"> def validate_n(n):
if isinstance(n, int) and n >= 1 and n <= 2147000000:
return True
else:
return False
def ElimZTRec(n):
if n % 10 != 0:
return n
else:
return ElimZTRec(n // 10)
def main():
n = input("Introduceti un numar natural intre 1 si 2147000000: ")
try:
n = int(n)
if validate_n(n):
result = ElimZTRec(n)
print(f"Numarul fara zerouri la final este: {result}")
else:
print("Numarul introdus nu este valid.")
except ValueError:
print("Nu ati introdus un numar natural.")
</syntaxhighlight>