0918 - SumCifRec1

From Bitnami MediaWiki
Revision as of 13:39, 6 April 2023 by Cata (talk | contribs)

Cerinţa

Să se scrie o funcție Python recursivă care determină suma cifrelor unui număr natural n transmis ca parametru și întoarce rezultatul prin intermediul unui parametru de ieșire.

Restricţii şi precizări

  • Numele funcției va fi sumcif
  • Funcția are un doi parametri, n, număr natural, și s, prin intermediul căruia se întoarce rezultatul
  • Ordinea celor doi parametri este n, s
  • Numărul n pentru care se calculează suma cifrelor va fi mai mic decât 2.000.000.000

Explicație

Funcția sumcif primește un număr natural n și calculează suma cifrelor sale. Funcția utilizează o abordare recursivă, în care se extrage ultima cifră a lui n prin calculul lui n % 10, iar apoi se adaugă această cifră la suma cifrelor cifrelor numărului n // 10 (adică a lui n fără ultima cifră). Acest proces se repetă până când numărul n devine 0.

Rezolvare

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

   return isinstance(n, int) and n >= 0 and n <= 2000000000

def sumcif(n, s):

   if n == 0:
       return s
   else:
       return sumcif(n // 10, s + n % 10)

def main():

   n = input("Introduceți un număr întreg pozitiv: ")
   try:
       n = int(n)
       if validate_n(n):
           result = sumcif(n, 0)
           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>