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>