0855 - Piramida 2
Cerința
Gigel a descoperit planul unei piramide magice. Planul este reprezentat sub forma unei matrice pătratice de dimensiune n, unde n este impar, în care elementele nule nu aparțin piramidei, iar elementele nenule reprezintă înălțimea piramidei în punctul respectiv.
Vezi exemplul pentru detalii!
Pentru n dat, construiți o matrice care să reprezinte planul unei piramide magice.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran elementele matricei construite, câte o linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin exact un spaţiu
Restricții și precizări
- 3 ⩽ n ⩽ 101, impar
Exemplu 1
- Intrare
- 5
- Ieșire
- 0 0 1 0 0
- 0 1 2 1 0
- 1 2 3 2 1
- 0 1 2 1 0
- 0 0 1 0 0
Exemplu 2
- Intrare
- 2
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line>
- 0855 - Piramida 2
def is_valid_input(n):
return 3 <= n <= 101 and n % 2 == 1
def build_pyramid_matrix(n):
if not is_valid_input(n): print("Nu au fost respectate cerintele impuse.") return
pyramid_matrix = [[0] * n for _ in range(n)]
for i in range(n): for j in range(n): pyramid_matrix[i][j] = max(abs(n // 2 - i), abs(n // 2 - j))
return pyramid_matrix
def print_matrix(matrix):
for row in matrix: print(" ".join(map(str, row)))
if __name__ == "__main__":
n = int(input("Introduceți n: "))
pyramid_matrix = build_pyramid_matrix(n)
if pyramid_matrix: print_matrix(pyramid_matrix)
</syntaxhighlight>