0906 - SumaCifre: Difference between revisions

From Bitnami MediaWiki
No edit summary
Line 24: Line 24:
===Rezolvare ver. 1===
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="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):
def sumcif(n, sum_pare, sum_impare):
     if n >= 2000000000:
     x = n
        print("Eroare: n trebuie să fie mai mic decât 2.000.000.000")
        return
   
    sum_pare = 0
    sum_impare = 0
     while n > 0:
     while n > 0:
         cifra = n % 10
         cifra = n % 10
Line 38: Line 37:
             sum_impare += cifra
             sum_impare += cifra
         n //= 10
         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__":
    print("Suma cifrelor pare ale lui", x, "este:", sum_pare)
     main()
     print("Suma cifrelor impare ale lui", x, "este:", sum_impare)




          
if __name__ == '__main__':
</syntaxhighlight>
    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>

Revision as of 18:48, 19 March 2023

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>