fbpx

Problema #3416 – GenMat22 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Scrieți un program care citește de la tastatură un număr natural n și construiește o matrice cu 3*n linii și 3*n coloane, împărțită în n*n zone, numerotate de la 1 la n*n, de sus în jos și de la stânga la dreapta. Fiecare zonă ocupă 3 linii și 3 coloane și va conține pe diagonale numărul său de ordine, restul elementelor fiind egale cu 0.

Date de intrare

Programul citetșe de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran matricea construită, câte o linie din matrice pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 20

Exemplu

Intrare

2

Ieșire

1 0 1 2 0 2
0 1 0 0 2 0
1 0 1 2 0 2
3 0 3 4 0 4
0 3 0 0 4 0
3 0 3 4 0 4

Explicație

S-a citit n=2 și se construiește o matrice cu 4 zone a câte 3 linii și 3 coloane.

#include <bits/stdc++.h>
using namespace std;

int n , a[101][101] , cnt;

void desen(int i , int j , int cnt)
{
    i = 3 * (i - 1) + 1;
    j = 3 * (j - 1) + 1;
    a[i][j] = cnt;
    a[i + 2][j] = cnt;
    a[i][j + 2] = cnt;
    a[i + 1][j + 1] = cnt;
    a[i + 2][j + 2] = cnt;
}

void afisare()
{
    for(int i = 1 ; i <= 3 * n ; i++)
    {
        for(int j = 1 ; j <= 3 * n ; j++)
            cout << a[i][j] << " ";
        cout << '\n';
    }
}

int main()
{
    cin >> n;
    for(int i = 1 ; i <= n ; i++)
        for(int j = 1 ; j <= n ; j++)
            cnt++ , desen(i , j , cnt);
    afisare();
    return 0;
}
Comentarii

S-ar putea sa iti placa