public class PascalschesDreieck extends MiniJava { public static void main(String[] args) { // Anzahl der Zeilen (m) einlesen (>= 0): int m = -1; while (m < 0) m = read("Wie viele Zeilen (>=0)?"); // Anzahl der Einträge (e) nach Angabe berechnen: int e = (m * (m+1)) / 2; int[] pascal = new int[e]; // Array anlegen // Berechnung in einem Array durchführen: int n = 0; // aktueller Zeilenindex while (n < m) { // für jede Zeile int lineIndex = (n * (n+1)) / 2; // Index des ersten Elements dieser Zeile im Array pascal[lineIndex] = pascal[lineIndex+n] = 1; // Anfang und Ende auf 1 setzen int i = 1; // aktueller Index innerhalb der Spalte n while (i < n) { // alle Zahlen in der Zeile (ohne erstes/letztes) pascal[lineIndex+i] = pascal[lineIndex-(n+1)+i] + pascal[lineIndex-n+i]; i++; } n++; // nächste Zeile } // Konsolenausgabe: n = 0; // Zeilenindex int i = 0; // Index des aktuellen Elements im Array while (i < e) { writeConsole(pascal[i] + " "); i++; // nächste Zahl // ggf. Zeilenumbruch: int e_n = ((n+1) * (n+2)) / 2; if (i >= e_n) { // kein weiteres Element in dieser Zeile n++; writeLineConsole(); } } } }