Advertisement
vvsvvs

Untitled

May 18th, 2022
548
138 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Text;
  3.  
  4. namespace Pascal_Triangle
  5. {
  6.     class PascalTriangle
  7.     {
  8.         static int IndexValue(int n)
  9.         {
  10.             int result;
  11.             int a = 1;
  12.             int b = n;
  13.             if ((n % 2) == 0)
  14.             {
  15.                 result = (a + b) * n / 2;
  16.             }
  17.             else
  18.             {
  19.                 result = ((n - 1) / 2) * (a + (b - 1)) + b;
  20.             }
  21.             return result;
  22.         }
  23.  
  24.         static void Main(string[] args)
  25.         {
  26.             int n = int.Parse(Console.ReadLine());
  27.  
  28.             int arrSize = 2;
  29.  
  30.             if (n > 1)
  31.             {
  32.                 arrSize = IndexValue(n);
  33.             }          
  34.  
  35.             ulong[] arr = new ulong[arrSize];
  36.            
  37.             arr[0] = 1;
  38.            
  39.             int indexSource;           
  40.             int indexTarget;
  41.  
  42.             for (int row = 1; row <= n - 1; row++)
  43.             {
  44.                 int k = row + 1;
  45.                 indexSource = IndexValue(row - 1);
  46.                 indexTarget = IndexValue(k - 1);
  47.                
  48.                 for (int col = 0; col <= row - 1; col++)
  49.                 {
  50.                     arr[indexTarget + col] += arr[indexSource + col];
  51.                     arr[indexTarget + col + 1] += arr[indexSource + col];
  52.                 }
  53.             }
  54.  
  55.             StringBuilder sb = new StringBuilder();
  56.  
  57.             for (int row = 1; row <= n; row++)
  58.             {
  59.                 indexTarget = IndexValue(row - 1);
  60.                 sb.Clear();
  61.  
  62.                 for (int col = 0; col <= row - 1; col++)
  63.                 {
  64.                     sb.Append($"{arr[indexTarget + col]} ");                   
  65.                 }
  66.  
  67.                 Console.WriteLine(sb.ToString().TrimEnd());
  68.             }
  69.  
  70.  
  71.            
  72.         }
  73.     }
  74. }
  75.  
Advertisement
RAW Paste Data Copied
Advertisement