如何使用 C# 為給定的數字生成帕斯卡三角形?


帕斯卡三角形是一個形狀像三角形的數字圖案。帕斯卡三角形在數學和統計學中有很多應用,包括幫助你計算組合。

三角形中的每個數字都是其上方兩個數字的和。例如,第 4 行 − 它是由上方行中的 3 和 3 之和。任何行中的第一個數字和最後一個數字始終為 1。

時間複雜度 − O(N)

空間複雜度 − 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.LastOrDefault();
         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]]

更新時間:2021 年 8 月 17 日

105 次瀏覽

開創您的 事業

完成課程後獲得認證

開始
廣告
© . All rights reserved.