Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#을 사용하여 주어진 숫자에 대한 파스칼 삼각형을 생성하는 방법은 무엇입니까?


파스칼의 삼각형은 삼각형 모양의 숫자 패턴입니다. Pascal의 삼각형은 조합을 계산하는 데 도움이 되는 기능을 포함하여 수학 및 통계에 많은 응용 프로그램을 가지고 있습니다.

삼각형의 각 숫자는 위에 있는 두 숫자의 합입니다. 예를 들어, 행 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]]