Hướng dẫn giải của LOOP11: Bàn cờ vua
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Cho số nguyên dương ~n \le 100~, hãy vẽ bàn cờ kích thước ~n \times n~ bằng các ký tự D (đen) và T (trắng), với ô góc trên bên trái là ô trắng.
Cách làm
Chương trình dùng hai vòng lặp lồng nhau: vòng ngoài chạy theo dòng ~i~, vòng trong chạy theo cột ~j~ (đều bắt đầu từ 0).
Quy luật màu: ô ~(i, j)~ là trắng khi ~i + j~ là số chẵn, ngược lại là đen. Với ô góc trên bên trái ~(0, 0)~ thì ~0 + 0 = 0~ là chẵn nên là ô trắng đúng như đề.
Mỗi dòng được ghép thành một xâu ký tự rồi in ra, sau đó xuống dòng.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
// Duyệt từng dòng i và từng cột j của bàn cờ
for (int i = 0; i < n; i++) {
string dong = "";
for (int j = 0; j < n; j++) {
// Ô (i, j) là ô trắng khi i + j chẵn, ngược lại là ô đen
if ((i + j) % 2 == 0) {
dong += 'T';
} else {
dong += 'D';
}
}
cout << dong << "\n";
}
return 0;
}
Bình luận