0855 - Piramida 2: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == 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...
 
No edit summary
 
Line 1: Line 1:
== Cerința ==
== 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.
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!
'''Vezi exemplul pentru detalii!'''


Pentru n dat, construiți o matrice care să reprezinte planul unei piramide magice.
Pentru '''n''' dat, construiți o matrice care să reprezinte planul unei piramide magice.
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul n.
Programul citește de la tastatură numărul '''n'''.
== Date de ieșire ==
== 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
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 ==
== Restricții și precizări ==
*3 ⩽ n ⩽ 101, impar
*'''3 ⩽ n ⩽ 101''', impar
== Exemplu 1 ==
== Exemplu 1 ==
;Intrare
;'''Intrare'''
:5
:5
;Ieșire
;'''Ieșire'''
:0 0 1 0 0
:0 0 1 0 0
:0 1 2 1 0
:0 1 2 1 0
Line 22: Line 22:
<br>
<br>
== Exemplu 2 ==
== Exemplu 2 ==
; Intrare
;'''Intrare'''
: 2
: 2
; Ieșire
; '''Ieșire'''
: Nu au fost respectate cerintele impuse
: Nu au fost respectate cerintele impuse
<br>
<br>

Latest revision as of 12:53, 6 January 2024

Cerința[edit]

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[edit]

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

Date de ieșire[edit]

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[edit]

  • 3 ⩽ n ⩽ 101, impar

Exemplu 1[edit]

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[edit]

Intrare
2
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 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>