Rezolvare completă PbInfo #855 Piramida2

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 

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Piramida2:

#include <iostream>
using namespace std;

int a[102][102], n;

int main(){
    cin  >> n;
    a[1][n/2 + 1] = a[n][n/2+1] = 1;
    for(int i = 2 , j = n - 1 ; i <= j ; i ++, j --)
    {
        a[i][n/2+1] = a[i-1][n/2+1] + 1;
        a[j][n/2+1] = a[j+1][n/2+1] + 1;
        for(int k = a[i][n/2+1]-1 , p = 1 ; k  > 0 ; k -- , p ++)
            a[i][n/2+1-p] = a[i][n/2+1+p] = k;
        for(int k = a[j][n/2+1]-1 , p = 1 ; k  > 0 ; k -- , p ++)
            a[j][n/2+1-p] = a[j][n/2+1+p] = k;
    }
    for (int i = 1 ;i <= n ; ++i)
    {
        for(int j = 1 ; j <= n ; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #855 Piramida2

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #855 Piramida2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!