Informatică, întrebare adresată de mariabiancadragan, 8 ani în urmă

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.

Răspunsuri la întrebare

Răspuns de boiustef
2

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:

se completeaza coloana de mijloc, apoi elementele coloanelor din stanga  cu copiere in partea dreapta, deoarece avem simetrie axiala

Alte întrebări interesante