Binary triangle: xen kẽ 0 và 1, mỗi hàng thêm 1 ký tự. Dùng nested loop + toggle variable.
Ví dụ minh họa
using System;
class Program
{
static void Main()
{
PrintBinaryTriangle(7);
Console.WriteLine();
PrintBinaryTriangle(5, '0', '1'); // Tùy chỉnh ký tự
}
static void PrintBinaryTriangle(int rows, char first = '1', char second = '0')
{
for (int i = 1; i <= rows; i++)
{
char current = (i % 2 == 1) ? first : second;
for (int j = 1; j <= i; j++)
{
Console.Write(current);
// Toggle
current = (current == first) ? second : first;
}
Console.WriteLine();
}
}
}
Kết quả đầu ra (rows=7)
1 01 101 0101 10101 010101 1010101
Giải thích
- Hàng 1 (lẻ): bắt đầu bằng '1' → "1"
- Hàng 2 (chẵn): bắt đầu bằng '0' → "01"
- Hàng 3 (lẻ): bắt đầu bằng '1' → "101"
- Mỗi hàng: toggle ký tự sau mỗi lần in
Biến thể: Pascal Triangle mod 2 (Sierpinski)
static void PrintPascalMod2(int rows)
{
int[] prev = new int[rows];
int[] curr = new int[rows];
for (int i = 0; i < rows; i++)
{
Console.Write(new string(' ', rows - i - 1));
curr[0] = 1;
for (int j = 1; j <= i; j++)
curr[j] = (prev[j-1] + prev[j]) % 2;
for (int j = 0; j <= i; j++)
Console.Write(curr[j] + " ");
Console.WriteLine();
Array.Copy(curr, prev, rows);
}
}
Output tạo ra tam giác Sierpinski pattern!