Advertisement
vvsvvs

Untitled

May 18th, 2022
597
138 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Numerics;
  3. using System.Text;
  4.  
  5. namespace _01._Binomial_Coefficients
  6. {
  7.     class BinomialCoefficients
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int n = int.Parse(Console.ReadLine()) - 1;
  12.             int k = n;
  13.  
  14.             BigInteger[][] coeff = new BigInteger[n + 1][];
  15.  
  16.             Binom(n, k, ref coeff);
  17.  
  18.             Console.WriteLine(ReturnMatrixInString(coeff));
  19.         }
  20.  
  21.         static BigInteger Binom(int n, int k, ref BigInteger[][] coeff)
  22.         {
  23.             if (n == 0)
  24.             {
  25.                 coeff[n] = new BigInteger[1] { 1 };
  26.             }
  27.             else if ((n == 1))
  28.             {
  29.                 coeff[n] = new BigInteger[2] { 1, 1 };
  30.                 coeff[n - 1] = new BigInteger[1] { 1 };
  31.             }
  32.             else
  33.             {
  34.                 if (coeff[n] == null)
  35.                 {
  36.                     BigInteger[] newArray = new BigInteger[n + 1];
  37.  
  38.                     for (int i = 1; i < newArray.Length - 1; i++)
  39.                     {
  40.                         newArray[i] = 0;
  41.                     }
  42.  
  43.                     newArray[0] = 1;
  44.                     newArray[newArray.Length - 1] = 1;
  45.                     coeff[n] = newArray;
  46.                 }
  47.             }
  48.             int j = coeff[n].Length - 2;
  49.             while (j > 0)
  50.             {
  51.                 if (coeff[n][j] == 0)
  52.                 {
  53.                     coeff[n][j] = Binom(n - 1, j, ref coeff) + Binom(n - 1, j - 1, ref coeff);
  54.                 }
  55.  
  56.                 j--;
  57.             }          
  58.  
  59.             return coeff[n][k];
  60.         }
  61.  
  62.         static string ReturnMatrixInString(BigInteger[][] binom)
  63.         {
  64.             StringBuilder sb = new StringBuilder();
  65.  
  66.             for (int row = 0; row < binom.Length; row++)
  67.             {
  68.                 sb.AppendLine(string.Join(" ", binom[row]));
  69.             }
  70.  
  71.             return sb.ToString().TrimEnd();
  72.         }
  73.     }
  74. }
Advertisement
RAW Paste Data Copied
Advertisement