0906 - SumaCifre
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 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>