4211 - ElimZTRec: Difference between revisions

From Bitnami MediaWiki
Cata (talk | contribs)
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 (talk | contribs)
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.


== Important ==
== Explicație ==
Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.
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>