0906 - SumaCifre

From Bitnami MediaWiki

Cerință

Să se scrie o funcție Python care să determine suma cifrelor pare și suma cifrelor impare pentru un număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.

Restricții de precizări

Numele funcției va fi sumcif
Funcția va avea trei parametri: primul parametru reprezintă numărul n pentru care se calculează cifrele cerute,al doilea parametru va reprezenta suma cifrelor pare ale lui n, iar al treilea va reprezenta suma cifrelor impare ale lui n
n va fi număr natural mai mic decât 2.000.000.000

Exemplu

Exemplul 1

Dupa apelul
sumcif(274 , s , t);
Ieșire
s va avea valoarea 6, iar t va avea valoarea 7.

Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   return int(n) < 2_000_000_000


def sumcif(n, sum_pare, sum_impare):

   x = n
   while n > 0:
       cifra = n % 10
       if cifra % 2 == 0:
           sum_pare += cifra
       else:
           sum_impare += cifra
       n //= 10
   print("Suma cifrelor pare ale lui", x, "este:", sum_pare)
   print("Suma cifrelor impare ale lui", x, "este:", sum_impare)


if __name__ == '__main__':

   n = input("Introduceți un număr natural: ")
   sum_pare, sum_impare = 0, 0
   if validare(n):
       print("Datele corespund restricțiilor impuse.")
       n = int(n)
       sumcif(n, sum_pare, sum_impare)
   else:
       print("Datele nu corespund restricțiilor impuse.")</syntaxhighlight>