311
Cerința
Se dau două numere naturale n
și k
, cu proprietatea că 2*k < n
. Să se afişeze pe ecran elementele unei matrice pătratice de dimensiune n
, formată din valorile 1
şi 2
, construită astfel:
- valorile de pe diagonala principală sunt
1
; - valorile de pe
k
pseudodiagonale paralele cu diagonala principală şi situate imediat deasupra acesteia sunt1
; - valorile de pe
k
pseudodiagonale paralele cu diagonala principală şi situate imediat sub aceasta sunt1
; - valorile de pe diagonala secundară sunt
1
; - valorile de pe
k
pseudodiagonale paralele cu diagonala secundară şi situate imediat deasupra acesteia sunt1
; - valorile de pe
k
pseudodiagonale paralele cu diagonala secundară şi situate imediat sub aceasta sunt1
; - restul valorilor din matrice sunt
2
.
Date de intrare
Programul citește de la tastatură numerele n k
.
Date de ieșire
Programul va afișa pe ecran matricea construită, câte o linie a matrice pe o linie a ecranului, elementele de pe o line fiind separate prin exact un spaţiu.
Restricții și precizări
1 ≤ n ≤ 100
Exemplu
Intrare
10 1
Ieșire
1 1 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 1 1 1 2 1 1 1 2 2 1 1 1 2 2 2 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 2 2 2 1 1 1 2 2 1 1 1 2 1 1 1 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 1 1
#include<iostream> using namespace std; int main() { int a[25][25], n; cin>>n; for (int i = 1 ; i <= n; i++) for (int j = 1; j <= n ; j++) { if ((i == j) || ((i + j) == (n + 1))) a[i][j] = 0; else if ((i < j) && (i + j)<(n + 1)) a[i][j] = 1; else if ((i > j) && (i + j)>(n + 1)) a[i][j] = 2; else a[i][j] = 3; } for (int i = 1 ; i <= n ; i++) { for (int j = 1; j <= n ; j++) cout << a[i][j] << " "; cout << endl; } return 0; }
Comentarii