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; }