Bài toán
In hình tam giác đối xứng kép với ký tự 'x' và 'o' xen kẽ, cho số dòng n.
Ví dụ n=5
x x
o x o x
x o x x o x
x o x o x o x o
x o x o x o x o x o x
x o x o x o x o
x o x x o x
o x o x
x x
Cấu trúc
- Nửa trên: n-1 dòng (lẻ) hoặc n-2 (chẵn)
- Giữa: 1 dòng (lẻ) hoặc 3 dòng (chẵn)
- Nửa dưới: đối xứng nửa trên
Mã nguồn C (tóm tắt logic chính)
void printx(int n) { // in x o x o... bắt đầu x
for(i=1;i<=n;i++) printf(i%2?"x ":"o ");
}
void printo(int n) { // in o x o x... bắt đầu o
for(i=1;i<=n;i++) printf(i%2?"o ":"x ");
}
void printpattern(int n) {
// Xử lý n chẵn/lẻ riêng biệt cho nửa trên, giữa, nửa dưới
// Dùng biến p (space), s (số ký tự), q (số ký tự nửa dưới)
// In khoảng trắng, gọi printx/printo, xuống dòng
}
int main() { printpattern(5); }
Kết quả n=5
x x
o x o x
x o x x o x
x o x o x o x o
x o x o x o x o x
x o x o x o x o
x o x x o x
o x o x
x x