338
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
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n , a[103];
cin >> n;
for(int i = 1 ; i <= n ; ++i)
{
if(i == n / 2 + 1)a[i] = 1;
else a[i] = 0;
}
for(int i = 1 ; i <= n / 2 + 1 ; ++i)
{
for(int j = 1 ; j <= n ; ++j)
cout << a[j] <<" ";
cout << endl;
for(int j = n/2+1-i ; j <= n/2+1+i ; ++j) a[j]++;
}
for(int i = 1 ; i <= n ; ++i) a[i]--;
for(int i = n / 2 ; i >= 1 ; --i)
{
for(int j = n / 2 + 1 - i ; j <= n / 2 + 1 + i ; ++j) a[j]--;
for(int j = 1 ; j <= n ; ++j)
cout << a[j] <<" ";
cout << endl;
}
}
Comentarii