Clasa a X-a · Tablouri bidimensionale (matrice)Read in English
Generarea tablei de șah în C++
În engleză: Generating a chessboard
Ideea
Pe o tablă de șah, culoarea pătratului depinde doar de paritatea sumei i + j: pătratele cu i + j par au o culoare (1), cele cu i + j impar cealaltă culoare (0). Astfel, colțul a[1][1] este 1 și oricare două pătrate vecine (pe linie sau pe coloană) au valori diferite.
Descrierea în engleză
On a chessboard, the colour of a square depends only on the parity of i + j: squares with an even i + j have one colour (1), those with an odd i + j the other (0). So the corner a[1][1] is 1 and any two neighbouring squares (on a row or a column) have different values.
- Complexitate
- O(n * n)
- Clasa
- Clasa a X-a (Grade 10)
Exemple
Intrare
4
Ieșire așteptată
1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1
Intrare
1
Ieșire așteptată
1
Codul C++
Codul complet, cu comentarii în română. Îl poți modifica liber și îl poți reseta oricând.
/*
* Titlu: Generarea tablei de șah
* Clasa: 10
* Capitol: Tablouri bidimensionale (matrice)
* Descriere: Pe o tablă de șah, culoarea pătratului depinde doar de paritatea
* sumei i + j: pătratele cu i + j par au o culoare (1), cele cu i + j
* impar cealaltă culoare (0). Astfel, colțul a[1][1] este 1 și oricare
* două pătrate vecine (pe linie sau pe coloană) au valori diferite.
* Complexitate: O(n * n)
*
* Exemplu
* Intrare: 4
* Ieșire:
* 1 0 1 0
* 0 1 0 1
* 1 0 1 0
* 0 1 0 1
*
* Exemplu
* Intrare: 1
* Ieșire: 1
*/
#include <iostream>
using namespace std;
int a[101][101];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
a[i][j] = ((i + j) % 2 == 0) ? 1 : 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
cout << a[i][j] << ' ';
cout << '\n';
}
return 0;
}
Rulează pe un g++ adevărat (C++17, -O2) prin Compiler Explorer. Programele trebuie să se termine repede: există o limită de timp.