0286 - Chenare
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>
- 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>