0021 - Suma cifrelor
Cerință[edit | edit source]
Calculaţi suma cifrelor numărului dat.
Date de intrare[edit | edit source]
Programul va citi de la tastatură un număr natural.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afişa pe ecran suma cifrelor numărului citit. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări[edit | edit source]
- număr < 2.000.000.000
Exemplu[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 2705
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 14
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(n):
return n.isdigit() and 0 <= int(n) < 2_000_000_000
def suma(n):
suma = 0 while n > 0: cifra = n % 10 suma += cifra n //= 10
print("Suma cifrelor numarului dat este: ", suma)
if __name__ == '__main__':
n = input("Introduceti un numar natural: ") if validare(n): n = int(n) print("Datele introduse corespund restricțiilor impuse.") suma(n) else: print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicații[edit | edit source]
Acest cod este scris în limbajul de programare Python și este împărțit în două funcții principale: validare și suma.
Funcția validare verifică dacă inputul primit este un număr natural valid (adica întreg, pozitiv și mai mic decât 2 miliarde), returnând True dacă inputul este valid și False în caz contrar. Acest lucru se face verificând mai întâi dacă inputul este format doar din cifre, utilizând metoda isdigit() pentru string-uri. Apoi, se converteste inputul la un întreg și se verifică dacă este mai mare sau egal cu zero și mai mic decât 2 miliarde.
Funcția suma primește ca input un număr natural și calculează suma cifrelor sale. Acest lucru se realizează utilizând un loop while pentru a extrage cifrele din număr. În fiecare iterație, cifra unităților este obținută prin intermediul operatorului modulo (%), este adăugată la suma totală, iar numărul este actualizat prin eliminarea cifrei unităților (împărțind la 10 cu operatorul //). Acest proces se repetă până când numărul devine zero, ceea ce înseamnă că toate cifrele au fost procesate.
În funcția principală (main), se citește un input de la utilizator și se verifică dacă este un număr natural valid prin apelul funcției validare. Dacă inputul este valid, se converteste la un întreg și se afișează un mesaj că datele introduse sunt valabile. Apoi, funcția suma este apelată cu inputul și se afișează suma cifrelor. Dacă inputul nu este valid, se afișează un mesaj corespunzător.