👤

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


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

short a[102][102];

int main()

{

   short n, i, j, m, p=0;

   cin >> n;

   m=n/2+1;

   for (i=1; i<=n; ++i)

   { if (i<=m) ++p;

     else --p;

      a[i][m]=p; }

   for (i=1; i<=n; ++i)

   {

       for (j=m-1; j>=1; --j)

          if (a[i][j+1]>1)

           { a[i][j]=a[i][j+1]-1; a[i][2*m-j]=a[i][j]; }

   }

   for (i=1; i<=n; ++i)

   {

       for (j=1; j<=n; ++j)

           cout << a[i][j] << " ";

       cout << "\n";

   }

   return 0;

}

Explicație:

1. am completat mai intai coloana de mijloc

2. de la coloana de mijloc deplasare spre stanga cu calculare element, copia lui se scrie in a doua parte simetrica a matricei