Professional Documents
Culture Documents
#include <stdio.h>
#include <stdlib.h>
// Remplissage du triangle
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
return triangle;
}
// Test du programme
int main() {
// Calcul du triangle de Pascal de taille 5
int** triangle = triangle_de_pascal(5);
// Affichage du triangle
for (int i = 0; i <= 4; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
// Calcul de la complexité
int complexité = complexité_triangle_de_pascal(5);
printf("Complexité : %d\n", complexité);
// Libération de la mémoire
for (int i = 0; i <= 4; i++) {
free(triangle[i]);
}
free(triangle);
return 0;
}
Explication du programme
Fonction triangle_de_pascal() :
o Initialisation : on crée un tableau de tableaux d'entiers, dont la taille est n + 1. La première ligne du triangle
est initialisée à 1.
o Remplissage : on parcourt le triangle de bas en haut, en commençant par la deuxième ligne. Pour chaque
ligne, on calcule les termes en utilisant la relation de Pascal.
o Retour : on renvoie le tableau contenant les termes du triangle.
Fonction complexité_triangle_de_pascal() :
o Calcul de la complexité : on parcourt le triangle de bas en haut, en comptant le nombre d'éléments visités.
o Retour : on renvoie la complexité, qui est en O(n^2).
Fonction main() :
o Calcul du triangle de Pascal de taille 5.
o Affichage du triangle.
o Calcul de la complexité.
o Libération de la mémoire.
Complexité
La complexité de l'algorithme est en O(n^2), car il faut parcourir deux fois le triangle, une fois pour
initialiser la première ligne et une fois pour remplir le triangle.
Exemple
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Complexité : 20
Le triangle de Pascal de taille 5 est affiché sur la première ligne. La complexité de l'algorithme est de 20, car
il faut parcourir 5 lignes et 10 colonnes.