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
boiustef:
poate dai unde se afla sursa problemei... nu e clar din enunt strategia de construire a matricei...
Răspunsuri la întrebare
Răspuns de
1
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
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă