0823 - SumCifRec: Difference between revisions

From Bitnami MediaWiki
Cata (talk | contribs)
Pagină nouă: == Cerinţa== Să se scrie o funcție Python recursivă care să returneze suma cifrelor unui număr natural transmis ca parametru. == Restricţii şi precizări == * Numele funcției va fi sumcif * Funcția va avea un parametru reprezentând numărul dat * Numărul pentru care se calculează suma cifrelor va fi mai mic decât 2.000.000.000 == Exemplu == sumcif(2050) este 7. == Important == Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în solu...
 
Cata (talk | contribs)
No edit summary
Line 9: Line 9:
sumcif(2050) este 7.
sumcif(2050) este 7.


== 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 calculează suma cifrelor unui număr dat. Funcția primește un singur parametru, numărul întreg n, și returnează suma cifrelor sale.
 
Pentru a calcula suma cifrelor, funcția verifică dacă n este mai mic decât 10. Dacă este, atunci n este o singură cifră și această cifră este returnată ca rezultat al funcției.
 
În caz contrar, funcția calculează suma cifrei unităților a lui n (n % 10) și împărțește apoi n la 10 pentru a elimina această cifră. Funcția apelează apoi recursiv funcția sumcif cu n // 10 (adică numărul n fără ultima cifră) și adaugă rezultatul la suma cifrei unităților pentru a obține suma totală a cifrelor.


== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
def validate_n(n):
    if n < 0 or n > 2000000000:
        return False
    return True
def sumcif(n):
def sumcif(n):
     if n < 10:
     if n < 10:
Line 20: Line 29:
         return n % 10 + sumcif(n // 10)
         return n % 10 + sumcif(n // 10)


def main():
    n = input("Introduceți un număr întreg pozitiv: ")
    try:
        n = int(n)
        if validate_n(n):
            result = sumcif(n)
            print(f"Suma cifrelor numărului 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:37, 6 April 2023

Cerinţa

Să se scrie o funcție Python recursivă care să returneze suma cifrelor unui număr natural transmis ca parametru.

Restricţii şi precizări

  • Numele funcției va fi sumcif
  • Funcția va avea un parametru reprezentând numărul dat
  • Numărul pentru care se calculează suma cifrelor va fi mai mic decât 2.000.000.000

Exemplu

sumcif(2050) este 7.

Explicație

Această funcție calculează suma cifrelor unui număr dat. Funcția primește un singur parametru, numărul întreg n, și returnează suma cifrelor sale.

Pentru a calcula suma cifrelor, funcția verifică dacă n este mai mic decât 10. Dacă este, atunci n este o singură cifră și această cifră este returnată ca rezultat al funcției.

În caz contrar, funcția calculează suma cifrei unităților a lui n (n % 10) și împărțește apoi n la 10 pentru a elimina această cifră. Funcția apelează apoi recursiv funcția sumcif cu n // 10 (adică numărul n fără ultima cifră) și adaugă rezultatul la suma cifrei unităților pentru a obține suma totală a cifrelor.

Rezolvare

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

   if n < 0 or n > 2000000000:
       return False
   return True

def sumcif(n):

   if n < 10:
       return n
   else:
       return n % 10 + sumcif(n // 10)

def main():

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

</syntaxhighlight>