3165 - Matr Div Imp 1

From Bitnami MediaWiki

Cerința[edit | edit source]

Se consideră o matrice cu m linii și n coloane, numere naturale. Folosind metoda Divide et Impera, determinați suma numerelor pare din matrice.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele m și n, iar apoi cele m * n elemente ale matricei.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numărul S, reprezentând suma numerelor pare din matrice.

Restricții și precizări[edit | edit source]

  • 1 ≤ m, n ≤ 100
  • numerele din matrice vor fi mai mici decât 1.000.000

Exemplul 1[edit | edit source]

Intrare

3 5
1 2 3 4 5
2 4 6 1 7
1 3 4 5 9

Ieșire

22

Exemplul 2[edit | edit source]

Intrare

5 1001

Ieșire

Eroare: m și n trebuie să fie între 1 și 100.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1"> def validate_input(m, n):

   if not (1 <= m <= 100 and 1 <= n <= 100):
       print("Eroare: m și n trebuie să fie între 1 și 100.")
       exit()
   if m <= 0:
       print("Eroare: Numărul de linii (m) trebuie să fie mai mare de 0.")
       exit()

def sum_of_even_numbers(matrix, m, n):

   total_sum = 0
   for i in range(m):
       for j in range(n):
           if matrix[i][j] % 2 == 0:
               total_sum += matrix[i][j]
   return total_sum

def main():

   m = int(input("Introduceți numărul de linii (m): "))
   n = int(input("Introduceți numărul de coloane (n): "))
   validate_input(m, n)
   matrix = []
   for i in range(m):
       row = []
       for j in range(n):
           element = int(input(f"Introduceți elementul de pe poziția ({i + 1}, {j + 1}): "))
           row.append(element)
       matrix.append(row)
   result = sum_of_even_numbers(matrix, m, n)
   print(f"Suma numerelor pare din matrice: {result}")

if __name__ == "__main__":

   main()

</syntaxhighlight>