[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

4.6
  Triangle de Pascal - Corrigé
Niveau 2
 
 
Fichiers:
  Pascal.java    

On a encore affaire à un tableau en deux dimensions, mais cette fois avec un nombre variable de colonnes sur chaque ligne. Ceci permet d'optimiser l'espace de stockage requis en tenant compte du fait que, pour un triangle de Pascal, certains éléments ne sont pas définis (exemple l'élément d'indices [0][2] n'existe pas). La matrice calculée a ici une forme triangulaire.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.util.Scanner;

class Pascal {

    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        int size = 0;

        // On demande la taille
        System.out.println("Taille du triangle de Pascal : ");
        size = scanner.nextInt();

        // Ici on déclare le tableau, mais on ne construit que la première
        // dimension
        int[][] triangle = new int[size][];

        // On construit et initialise la 1ère ligne
        triangle[0] = new int[1];
        triangle[0][0] = 1;

        for (int row = 1; row < size; row++) {

            // Chaque ligne du triangle est un tableau à une dimension
            // dont la taille est celle de la ligne precedente + 1:
            // on construit ces lignes (new) au fur et à mesure que l'on
            // progresse dans le tableau
            triangle[row] = new int [triangle[row - 1].length + 1];

            // Remplissage du tableau:
            // les deux éléments aux deux extrémités des lignes valent 1.
            // Les autres sont liés par la relation:
            // triangle[row][j]= triangle[row-1][j-1] + triangle[row-1][j]

            for (int col = 0; col <= row; col++) {
                if ((col == 0) || (col == row)) {
                    triangle[row][col] = 1;
                } else {
                    triangle[row][col] = triangle[row - 1][col - 1]
                            + triangle[row - 1][col];
                }
            }
        }

        // Affichage du tableau
        for (int row = 0; row < size; row++) {
            for (int col = 0; col <= row; col++) {
                System.out.print(triangle[row][col] + " ");
            }
            System.out.println();
        }

        scanner.close();
    }
}

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]