0918 - SumCifRec1
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>