/*************************************************************************************************************************************/ /* */ /* C A L C U L D U T R I A N G L E D E P A S C A L : */ /* */ /* */ /* Author of '$xtc/TriangleDePascal.01$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20140728110643). */ /* */ /*************************************************************************************************************************************/ #include "INCLUDES.01.I" extern double log10(); #define DIMENSION \ 64 #define PARITE \ 2 int EditerParite=VRAI; /* Afin de pouvoir le triangle de Sierpinski... */ #define TABULATION \ " " #define SEPARATEUR \ TABULATION #define DIVISIBLE \ " " #define NON_DIVISIBLE \ "+" main() { int ligne,colonne; long int triangle[DIMENSION][DIMENSION]; /* Definition du triangle de Pascal... */ long int maximum=-1; int format; /* Afin de tabuler correctement le triangle de Pascal... */ for (ligne=0 ; ligne<DIMENSION ; ligne++) { for (colonne=0 ; colonne<DIMENSION ; colonne++) { if ((colonne == 0) || (ligne == colonne)) { triangle[ligne][colonne] = 1; /* Initialisation du triangle de Pascal... */ } else { triangle[ligne][colonne] = 0; /* Initialisation du triangle de Pascal... */ } } } for (ligne=0 ; ligne<DIMENSION ; ligne++) { for (colonne=0 ; colonne<DIMENSION ; colonne++) { if ((colonne > 0) && (colonne < ligne) && (ligne > 1)) { triangle[ligne][colonne] = triangle[ligne-1][colonne-1] + triangle[ligne-1][colonne]; /* Calcul du triangle de Pascal... */ maximum = MAX2(maximum,triangle[ligne][colonne]); /* Recherche de la valeur maximale dans le triangle de Pascal afin de bien tabuler sa */ /* sortie ci-apres... */ } else { } } } format = (((int)log10((double)maximum))+1); for (ligne=0 ; ligne<DIMENSION ; ligne++) { if (EditerParite == VRAI) { for (colonne=0 ; colonne<(DIMENSION-ligne) ; colonne++) { printf("%s",TABULATION); } } else { } for (colonne=0 ; colonne<DIMENSION ; colonne++) { if (colonne <= ligne) { if (EditerParite == VRAI) { printf("%s%s" ,COND((triangle[ligne][colonne]%PARITE)==0,DIVISIBLE,NON_DIVISIBLE) ,COND(colonne<ligne,SEPARATEUR,"") ); } else { printf("%*ld ",format,triangle[ligne][colonne]); } } else { } } printf("\n"); } }