👤

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


Răspuns :


#include <iostream> using namespace std; int a[102][102], n; int main(){ cin >> n; a[1][n/2 + 1] = a[n][n/2+1] = 1; for(int i = 2 , j = n - 1 ; i <= j ; i ++, j --) { a[i][n/2+1] = a[i-1][n/2+1] + 1; a[j][n/2+1] = a[j+1][n/2+1] + 1; for(int k = a[i][n/2+1]-1 , p = 1 ; k > 0 ; k -- , p ++) a[i][n/2+1-p] = a[i][n/2+1+p] = k; for(int k = a[j][n/2+1]-1 , p = 1 ; k > 0 ; k -- , p ++) a[j][n/2+1-p] = a[j][n/2+1+p] = k; } for (int i = 1 ;i <= n ; ++i) { for(int j = 1 ; j <= n ; ++j) cout << a[i][j] << " "; cout << endl; } return 0; }