2791 - Gen Mat 24

From Bitnami MediaWiki

Cerința[edit | edit source]

Scrieți un program care citește de la tastatură un număr natural n (n∈[2,100]) și un șir de n numere naturale din intervalul [0,10000] și construiește în memorie un tablou bidimensional cu n linii și n coloane, numerotate începând de la 0, astfel încât parcurgând orice coloană numerotată cu un număr par, de jos în sus, sau orice coloană numerotată cu un număr impar, de sus în jos, se obține șirul citit.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.

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

  • 2 ⩽ n ⩽ 100
  • 0 ⩽ n ⩽ 10000

Exemplu 1[edit | edit source]

Intrare
4
7 2 5 3
Ieșire
7 3 7 3
2 5 2 5
5 2 5 2
3 7 3 7


Exemplu 2[edit | edit source]

Intrare
1
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 2791 - GenMat24

def build_matrix(n, numbers):

   matrix = [[0] * n for _ in range(n)]
   for j in range(n):
       for i in range(n):
           if j % 2 == 0:  # Coloana cu număr par
               matrix[i][j] = numbers[i]
           else:  # Coloana cu număr impar
               matrix[i][j] = numbers[n - i - 1]
   return matrix


def print_matrix(matrix):

   for row in matrix:
       print(" ".join(map(str, row)))


if __name__ == "__main__":

   n = int(input("Introduceți n: "))
   if 2 <= n <= 100:
       numbers = list(map(int, input(f"Introduceți {n} numere naturale separate prin spațiu: ").split()))
       result_matrix = build_matrix(n, numbers)
       print_matrix(result_matrix)
   else:
       print("Nu au fost respectate cerintele impuse.")

</syntaxhighlight>