0822 - NrCifreZeroRec: Difference between revisions

From Bitnami MediaWiki
Cata (talk | contribs)
Pagină nouă: == Cerinţa == Să se scrie o funcție Python recursivă care să returneze numărul de cifre egale cu zero ale unui număr natural transmis ca parametru. == Restricţii şi precizări == * Numele funcției va fi nr_cif_zero * Funcția va avea un parametru reprezentând numărul dat * Numărul pentru care se calculează numărul de cifre egale cu zero va fi mai mic decât 2.000.000.000 == Exemplu == nr_cif_zero(2050) este 2. == Important == Soluţia propusă va conţine doa...
 
Cata (talk | contribs)
No edit summary
Line 9: Line 9:
nr_cif_zero(2050) este 2.
nr_cif_zero(2050) este 2.


== Important ==
== Explicație ==
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Această funcție numără câte cifre zero sunt prezente într-un număr dat. Ea verifică dacă ultima cifră a numărului este 0 și numără această cifră dacă este cazul. Dacă ultima cifră nu este zero, se elimină ultima cifră din număr și se reapelează funcția pentru restul numărului. Acest proces se repetă până când numărul devine 0 și se returnează numărul total de cifre zero.


== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python>
<syntaxhighlight lang="python">
def validate_n(n):
    if isinstance(n, int) and n > 0:
        return True
    else:
        return False
 
def nr_cif_zero(n):
def nr_cif_zero(n):
     if n == 0:
     if n == 0:
Line 21: Line 27:
     else:
     else:
         return nr_cif_zero(n // 10)
         return nr_cif_zero(n // 10)
def main():
    n = input("Introduceți un număr întreg pozitiv: ")
    try:
        n = int(n)
        if validate_n(n):
            result = nr_cif_zero(n)
            print(f"Numărul de cifre zero din numărul introdus este: {result}")
        else:
            print("Numărul introdus nu este valid.")
    except ValueError:
        print("Nu ați introdus un număr întreg.")
</syntaxhighlight>
</syntaxhighlight>

Revision as of 13:41, 6 April 2023

Cerinţa

Să se scrie o funcție Python recursivă care să returneze numărul de cifre egale cu zero ale unui număr natural transmis ca parametru.

Restricţii şi precizări

  • Numele funcției va fi nr_cif_zero
  • Funcția va avea un parametru reprezentând numărul dat
  • Numărul pentru care se calculează numărul de cifre egale cu zero va fi mai mic decât 2.000.000.000

Exemplu

nr_cif_zero(2050) este 2.

Explicație

Această funcție numără câte cifre zero sunt prezente într-un număr dat. Ea verifică dacă ultima cifră a numărului este 0 și numără această cifră dacă este cazul. Dacă ultima cifră nu este zero, se elimină ultima cifră din număr și se reapelează funcția pentru restul numărului. Acest proces se repetă până când numărul devine 0 și se returnează numărul total de cifre zero.

Rezolvare

<syntaxhighlight lang="python"> def validate_n(n):

   if isinstance(n, int) and n > 0:
       return True
   else:
       return False

def nr_cif_zero(n):

   if n == 0:
       return 0
   if n % 10 == 0:
       return 1 + nr_cif_zero(n // 10)
   else:
       return nr_cif_zero(n // 10)

def main():

   n = input("Introduceți un număr întreg pozitiv: ")
   try:
       n = int(n)
       if validate_n(n):
           result = nr_cif_zero(n)
           print(f"Numărul de cifre zero din numărul introdus este: {result}")
       else:
           print("Numărul introdus nu este valid.")
   except ValueError:
       print("Nu ați introdus un număr întreg.")

</syntaxhighlight>