#608 nkx pbinfo 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 sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala principală şi situate imediat sub aceasta sunt 1;
valorile de pe diagonala secundară sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala secundară şi situate imediat deasupra acesteia sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala secundară şi situate imediat sub aceasta sunt 1;
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
Răspunsuri la întrebare
Răspuns de
5
#include<iostream>
using namespace std;
int n,k;
int main()
{
cin >> n >> k;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(i==j or n-i+1==j) cout << 1 << " ";
else
{
int nr=1,c=0;
while(nr!=k+1)
{
if(i+nr==j or i-nr==j or n-i+1+nr==j or n-i+1-nr==j)
{
cout << 1 << " ";
c++;
break;
}
nr++;
}
if(c==0) cout << 2 << " ";
}
cout << endl;
}
return 0;
}
using namespace std;
int n,k;
int main()
{
cin >> n >> k;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(i==j or n-i+1==j) cout << 1 << " ";
else
{
int nr=1,c=0;
while(nr!=k+1)
{
if(i+nr==j or i-nr==j or n-i+1+nr==j or n-i+1-nr==j)
{
cout << 1 << " ";
c++;
break;
}
nr++;
}
if(c==0) cout << 2 << " ";
}
cout << endl;
}
return 0;
}
stassahul:
Wow, da prostii am scris... Cred ca exista vreo solutie mai usoara, ca ceea ce am facut eu, deloc numi place.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă