0021 - Suma cifrelor: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 6: Line 6:


==Date de ieșire==
==Date de ieșire==
Programul va afişa pe ecran suma cifrelor numărului citit.
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==
==Restricții de precizări==
numărul citit va fi mai mic decât ''' 2.000.000.000'''
* număr < ''' 2.000.000.000'''


==Exemplul 1==
==Exemplu==
===Exemplul 1===


;Intrare
;Intrare
Line 18: Line 19:


;Ieșire
;Ieșire
:Datele introduse corespund restricțiilor impuse.
:14
==Rezolvare==
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    return n.isdigit() and 0 <= int(n) < 2_000_000_000


:14
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>


==Rezolvare==
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">


n = int(input("Introduceti un numar natural: "))
suma = 0


while n > 0:
==Explicații==
    cifra = n % 10
    suma += cifra
    n //= 10


print("Suma cifrelor numarului dat este: ", suma)
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.


</syntaxhighlight>
Î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.

Latest revision as of 13:25, 6 May 2023

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.