fbpx

Problema #855 – Piramida2 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa