Programa en C para imprimir el triángulo de Pascal

Aquí veremos cómo imprimir el triángulo de Pascal usando un programa C. El Triángulo de Pascal es una array triangular de coeficientes binomiales en la que la n -ésima fila contiene coeficientes binomiales n C 0 , n C 1 , n C 2 , ……. n C n . Hay 2 métodos para imprimir el triángulo de pascal usando el programa C:

  1. Uso de arrays 2D.
  2. Usando combinación.

Vamos a discutir estos métodos en detalle.

1. Uso de arrays 2D

Se puede observar que cada entrada es la suma de los dos valores por encima de ella. Entonces podemos crear una array 2D que almacene valores generados previamente. Para generar un valor en una línea, podemos usar los valores almacenados previamente de la array. 

C program to print pascal's triangle

 

C

// C program to print Pascal’s 
// Triangle using 2D Arrays in
// O(n^2) time and O(n^2) extra space
// method.
#include<stdio.h>
void printPascal(int n)
{
  // An auxiliary array to store
  // generated pascal triangle values
  int arr[n][n];
    
  // Iterate through every line and 
  // print integer(s) in it
  for (int line = 0; line < n; line++)
  {
    // Every line has number of integers
    // equal to line number
    for (int i = 0; i <= line; i++)
    {
      // First and last values in 
      // every row are 1
      if (line == i || i == 0)
        arr[line][i] = 1;
        
      // Other values are sum of values 
      // just above and left of above
      else
        arr[line][i] = (arr[line - 1][i - 1] + 
                        arr[line - 1][i]);
      printf("%d ", 
              arr[line][i]);
    }
    printf("\n");
  }
}
  
// Driver code
int main()
{
  int n = 5;
  printPascal(n);
  return 0;
}
Producción

1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

Complejidad del tiempo:O(n 2 )

Espacio Auxiliar: O(n 2 )

2. Usando combinación

n C r se puede representar como C(n,r) y esto representa el elemento r de la n ésima fila en la pirámide de pascal. La idea es calcular C(n, r) usando C(n, r-1). Se puede calcular en tiempo O(1) usando lo siguiente. 

C(n, r) = C(n, r-1) * (n – r + 1) / r

A continuación se muestra el programa C para imprimir el triángulo de pascal usando combinaciones:

C

// C program to print Pascal’s Triangle
// using combinations in O(n^2) time 
// and O(1) extra space function 
#include <stdio.h>
void printPascal(int n)
{
    for (int line = 1; line <= n; line++) 
    {
        // used to represent C(line, i)
        int C = 1; 
        for (int i = 1; i <= line; i++) 
        {
            // The first value in a line 
            // is always 1
            printf("%d ", C); 
            C = C * (line - i) / i;
        }
        printf("\n");
    }
}
  
// Driver code
int main()
{
    int n = 5;
    printPascal(n);
    return 0;
}
Producción

1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

Complejidad temporal: O(n 2 )

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por ishankhandelwals y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *