0021 - Suma cifrelor

De la Universitas MediaWiki

Cerință

Calculaţi suma cifrelor numărului dat.

Date de intrare

Programul va citi de la tastatură un număr natural.

Date de ieșire

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

  • număr < 2.000.000.000

Exemplu

Exemplul 1

Intrare
2705
Ieșire
Datele introduse corespund restricțiilor impuse.
14

Rezolvare

Rezolvare ver. 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.")


Explicații

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.