4211 - ElimZTRec: Difference between revisions
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... |
No edit summary |
||
Line 9: | Line 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: | ||
Line 19: | Line 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> |
Revision as of 09:47, 6 April 2023
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>