394
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
kpseudodiagonale paralele cu diagonala principală şi situate imediat deasupra acesteia sunt1; - valorile de pe
kpseudodiagonale paralele cu diagonala principală şi situate imediat sub aceasta sunt1; - valorile de pe diagonala secundară sunt
1; - valorile de pe
kpseudodiagonale paralele cu diagonala secundară şi situate imediat deasupra acesteia sunt1; - valorile de pe
kpseudodiagonale 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