0286 - Chenare

De la Universitas MediaWiki
Versiunea din 12 decembrie 2023 18:34, autor: Ramona Dragoș (discuție | contribuții) (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...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

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

#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.")