4211 - ElimZTRec: Diferență între versiuni
Cata (discuție | contribuții) (Pagină nouă: == 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. == Important == Soluția p...) |
Cata (discuție | contribuții) Fără descriere a modificării |
||
Linia 9: | Linia 9: | ||
ElimZTRec(240) = 24, ElimZTRec(123) = 123 și ElimZTRec(20500) = 205. | ElimZTRec(240) = 24, ElimZTRec(123) = 123 și ElimZTRec(20500) = 205. | ||
== | == Explicație == | ||
Funcția <code>ElimZTRec</code> primește ca parametru un număr natural <code>n</code> și elimină zerourile de la finalul acestuia. Dacă ultima cifră a lui <code>n</code> este diferită de zero, funcția returnează <code>n</code>. În caz contrar, se apelează funcția recursiv cu <code>n</code> împărțit la 10. | |||
Funcția de validare <code>validate_n</code> verifică dacă <code>n</code> este un număr natural între 1 și 2.147.000.000 (inclusiv) folosind operatorii de comparație <code>>=</code> și <code><=</code>. | |||
Funcția <code>main</code> primește un număr natural <code>n</code> de la tastatură, verifică dacă acesta este valid folosind funcția <code>validate_n</code>, elimină zerourile de la finalul lui <code>n</code> folosind funcția <code>ElimZTRec</code> și afișează rezultatul. | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python"> | <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): | def ElimZTRec(n): | ||
if n % 10 != 0: | if n % 10 != 0: | ||
Linia 19: | Linia 29: | ||
else: | else: | ||
return ElimZTRec(n // 10) | 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> | </syntaxhighlight> |
Versiunea de la data 6 aprilie 2023 09:47
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
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.")