0286 - Chenare
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 separate printr-un spaţiu.
Restricții și precizări
- 1 ⩽ n ⩽ 50
Exemplu 1
- 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
- Intrare
- 0
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare
<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>