Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

In tam giác nhị phân (Binary Triangle) trong C#

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!