0906 - SumaCifre

From Bitnami MediaWiki
Revision as of 18:35, 19 March 2023 by Cuceu Andrei (talk | contribs)

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

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 sumcif(n, sum_pare, sum_impare):

   if n >= 2000000000:
       print("Eroare: n trebuie să fie mai mic decât 2.000.000.000")
       return
   
   sum_pare = 0
   sum_impare = 0
   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", n, "este:", sum_pare)
   print("Suma cifrelor impare ale lui", n, "este:", sum_impare)


def main():

   n = int(input("Introduceți un număr natural: "))
   sum_pare = 0
   sum_impare = 0
   sumcif(n, sum_pare, sum_impare)


if __name__ == "__main__":

   main()


</syntaxhighlight>