Advertisement
vencinachev

Hw1-PascalTriangle

Mar 13th, 2021
852
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. int binomalCoeff(int n, int k);
  7. void Allocate(int n);
  8. void Print(int n);
  9. void Deallocate(int n);
  10.  
  11. int** a;
  12.  
  13. int main()
  14. {
  15.     int n;
  16.     cout << "Enter number of rows n" << endl << "n = ";
  17.     cin >> n;
  18.     Allocate( n);
  19.     Print(n);
  20.     Deallocate(n);
  21.     return 0;
  22. }
  23.  
  24. int binomalCoeff(int n, int k)
  25. {
  26.     if (k > n)
  27.     {
  28.         return 0;
  29.     }
  30.     else if (n == 0 || k == 0)
  31.     {
  32.         return 1;
  33.     }
  34.     return binomalCoeff(n - 1, k) + binomalCoeff(n - 1, k - 1);
  35. }
  36.  
  37. void Allocate(int n)
  38. {
  39.     a = new int*[n];
  40.     for (int i = 0; i < n; i++)
  41.     {
  42.         a[i] = new int[i + 1];
  43.     }
  44.  
  45.     for (int row = 0; row < n; row++)
  46.     {
  47.         for (int col = 0; col < row + 1; col++)
  48.         {
  49.             a[row][col] = binomalCoeff(row, col);
  50.         }
  51.     }
  52. }
  53.  
  54. void Print(int n)
  55. {
  56.     for (int row = 0; row < n; row++)
  57.     {
  58.         cout << "[" << row << "] ";
  59.         for (int col = 0; col < row + 1; col++)
  60.         {
  61.             cout << setw(3) << a[row][col] << " ";
  62.         }
  63.         cout << endl;
  64.     }
  65. }
  66.  
  67. void Deallocate(int n)
  68. {
  69.     for (int i = 0; i < n; i++)
  70.     {
  71.         delete[] a[i];
  72.     }
  73.     delete[] a;
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement