0286 - Chenare

From Bitnami MediaWiki
Revision as of 18:34, 12 December 2023 by Ramona Dragoș (talk | contribs) (Pagină nouă: == Cerința == Se dă un număr natural n. Construiţi o matrice pătratică de dimensiune n, în care elementele fiecărui chenar sunt egale cu numărul de ordine al chenarului. Chenarele sunt numerotate dinspre exterior spre interior, începând cu 1. == Date de intrare == Programul citește de la tastatură numărul n. == Date de ieșire == Programul afișează pe ecran elementele matricei, câte o linie a matricei pe o linie a ecranului, elementele fiecărei linii find s...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

Se dă un număr natural n. Construiţi o matrice pătratică de dimensiune n, în care elementele fiecărui chenar sunt egale cu numărul de ordine al chenarului.

Chenarele sunt numerotate dinspre exterior spre interior, începând cu 1.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieșire[edit | edit source]

Programul afișează pe ecran elementele matricei, câte o linie a matricei pe o linie a ecranului, elementele fiecărei linii find separate printr-un spaţiu.

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

  • 1 ⩽ n ⩽ 50

Exemplu 1[edit | edit source]

Intrare
5
Ieșire
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1


Exemplu 2[edit | edit source]

Intrare
0
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0286 - Chenare

def generate_matrix(n):

   matrix = [[0] * n for _ in range(n)]
   for i in range(n):
       for j in range(n):
           # Determinăm distanța față de margine
           distance_to_border = min(i, j, n - i - 1, n - j - 1)
           # Calculăm numărul chenarului și il adăugăm în matrice
           matrix[i][j] = distance_to_border + 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 1 <= n <= 50:
       result_matrix = generate_matrix(n)
       print_matrix(result_matrix)
   else:
       print("Nu au fost respectate cerintele impuse.")

</syntaxhighlight>