Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การสร้างสามเหลี่ยมปาสกาล (Pascal's Triangle) ใน C#


สามเหลี่ยมปาสกาล (Pascal's Triangle) เป็นรูปแบบตัวเลขสามเหลี่ยม มีประโยชน์ในคณิตศาสตร์และสถิติ รวมถึงการคำนวณคอมบิเนชัน ตัวเลขแต่ละตัวในสามเหลี่ยมเท่ากับผลรวมของสองตัวเหนือมัน เช่น แถวที่ 4 คือผลรวมของ 3 และ 3 ในแถวก่อนหน้า ตัวแรกและตัวสุดท้ายของทุกแถวจะเป็น 1 เสมอ

Time Complexity: O(N²)

Space Complexity: O(N²)

ตัวอย่างโค้ด

public class Arrays
{
    public List<List<int>> GeneratePascal(int n)
    {
        List<List<int>> res = new List<List<int>>();
        if (n <= 0)
        {
            return null;
        }
        List<int> first = new List<int>();
        first.Add(1);
        res.Add(first);
        if (n == 1)
        {
            return res;
        }
        for (int i = 2; i <= n; i++)
        {
            List<int> prev = res.Last();
            List<int> cur = new List<int>();
            for (int temp = 0; temp < i; temp++)
            {
                cur.Add(1);
            }
            for (int j = 1; j < i - 1; j++)
            {
                cur[j] = prev[j - 1] + prev[j];
            }
            res.Add(cur);
        }
        return res;
    }
}

static void Main(string[] args)
{
    Arrays s = new Arrays();
    var res = s.GeneratePascal(5);
    // แสดงผล: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
}

ผลลัพธ์

[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]