pascalsches Dreieck Zentrierung.

_so_far_away_

Mitglied
Java:
public class PascalschesDreieck {
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter the maximum row number to process: ");
        int row = scanner.nextInt();
        print(row);
    }
 
    public static void print(int n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(pascal(i, j) + " ");
            }
            System.out.println();
        }
    }
 
    public static int pascal(int i, int j) {
        if (j == 0) {
            return 1;
        } else if (j == i) {
            return 1;
        } else {
            return pascal(i - 1, j - 1) + pascal(i - 1, j);
        }
    }
 
}
Hi, ich habe ein pascalsches Dreieck programmiert und möchte es aber schöner gestalten. Jetzt sieht es so aus:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
.....
....
aber ich möchte es schön als Dreieck anzeigen lassen.
So ungefähr:
---------1
--------1 1
-------1 2 1
------1 3 3 1
-----1 4 6 4 1
.............

Weiß jemand wie es geht?
Hier ist der Code
 

_so_far_away_

Mitglied
Also die Füllzeichen müssen nicht unbedingt vorhanden sein. Ich könnte es leider hier im Forum nicht anders darstellen und deswegen habe ich die Füllzeichnen genommen, damit ich einen schönes Dreieck zeichnen kann.
 

_so_far_away_

Mitglied
oder schon, also es geht von unten nach oben der Zusammenhang. Es muss gelten, dass es von der letzten Zeile nach oben immer jeweils eine oder 2 Leerzeichnen bzw. Füllzeichnen addiert werden
 

Blender3D

Top Contributor
aber wie soll ich es implementieren? weil ich relativ neu in der Branche bin
Java:
public class StartPascalTriangle {

    public static void main(String[] args) {
        System.out.println(getPascalTrinangleStr(7));
    }

    public static int binominalCoefficient(int n, int k) {
        if (n < k)
            return binominalCoefficient(k, n);
        if (k == 0 || k == n)
            return 1;
        return binominalCoefficient(n - 1, k - 1) + binominalCoefficient(n - 1, k);
    }

    private static String centerStr(String[] lines) {
        StringBuffer tmp = new StringBuffer();
        int len = lines.length;
        int max = lines[len - 1].length();
        for (int i = 0; i < lines.length; i++) {
            tmp.append(multiply(' ', (max - lines[i].length()) / 2) + lines[i]);
            tmp.append(System.lineSeparator());
        }
        return tmp.toString();
    }

    public static String getPascalLine(int n) {
        StringBuffer tmp = new StringBuffer();
        for (int k = 0; k <= n; k++) {
            tmp.append(binominalCoefficient(n, k));
            tmp.append(" ");
        }
        return tmp.toString();
    }

    public static String getPascalTrinangleStr(int num) {
        String[] lines = new String[num + 1];
        for (int n = 0; n <= num; n++)
            lines[n] = getPascalLine(n);
        return centerStr(lines);
    }

    public static String multiply(char c, int num) {
        StringBuffer tmp = new StringBuffer();
        for (int i = 0; i < num; i++)
            tmp.append(c);
        return tmp.toString();
    }
}
 

M4rm0nt

Mitglied
Java:
import java.util.Scanner;

public class PascalschesDreieck {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter the maximum row number to process: ");
        int row = scanner.nextInt();
        print(row);
    }

    public static void print(int n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(pascal(i, j) + " ");
            }
            System.out.println();
        }
    }

    public static int pascal(int i, int j) {
        if (i == 0 || j == 0 || i == j) {
            return 1;
        } else {
            return pascal(i - 1, j - 1) + pascal(i - 1, j);
        }
    }

}
 

M4rm0nt

Mitglied
Java:
public class StartPascalTriangle {

    public static void main(String[] args) {
        System.out.println(getPascalTrinangleStr(7));
    }

    public static int binominalCoefficient(int n, int k) {
        if (n < k)
            return binominalCoefficient(k, n);
        if (k == 0 || k == n)
            return 1;
        return binominalCoefficient(n - 1, k - 1) + binominalCoefficient(n - 1, k);
    }

    private static String centerStr(String[] lines) {
        StringBuffer tmp = new StringBuffer();
        int len = lines.length;
        int max = lines[len - 1].length();
        for (int i = 0; i < lines.length; i++) {
            tmp.append(multiply(' ', (max - lines[i].length()) / 2) + lines[i]);
            tmp.append(System.lineSeparator());
        }
        return tmp.toString();
    }

    public static String getPascalLine(int n) {
        StringBuffer tmp = new StringBuffer();
        for (int k = 0; k <= n; k++) {
            tmp.append(binominalCoefficient(n, k));
            tmp.append(" ");
        }
        return tmp.toString();
    }

    public static String getPascalTrinangleStr(int num) {
        String[] lines = new String[num + 1];
        for (int n = 0; n <= num; n++)
            lines[n] = getPascalLine(n);
        return centerStr(lines);
    }

    public static String multiply(char c, int num) {
        StringBuffer tmp = new StringBuffer();
        for (int i = 0; i < num; i++)
            tmp.append(c);
        return tmp.toString();
    }
}
Code:
public class StartPascalTriangle {

    public static void main(String[] args) {
        System.out.println(getPascalTrinangleStr(7));
    }

    public static int binominalCoefficient(int n, int k) {
        if (k == 0 || k == n) {
            return 1;
        }

        return binominalCoefficient(n - 1, k - 1) + binominalCoefficient(n - 1, k);
    }

    private static String centerStr(String[] lines) {
        StringBuilder tmp = new StringBuilder();
        int len = lines.length;
        int max = lines[len - 1].length();
        for (int i = 0; i < lines.length; i++) {
            tmp.append(multiply(' ', (max - lines[i].length()) / 2) + lines[i]);
            tmp.append(System.lineSeparator());
        }
        return tmp.toString();
    }

    public static String getPascalLine(int n) {
        StringBuilder tmp = new StringBuilder();
        for (int k = 0; k <= n; k++) {
            tmp.append(binominalCoefficient(n, k));
            tmp.append(" ");
        }
        return tmp.toString();
    }

    public static String getPascalTrinangleStr(int num) {
        String[] lines = new String[num + 1];
        for (int n = 0; n <= num; n++) {
            lines[n] = getPascalLine(n);
        }
        return centerStr(lines);
    }

    public static String multiply(char c, int num) {
        StringBuilder tmp = new StringBuilder();
        for (int i = 0; i < num; i++) {
            tmp.append(c);
        }
        return tmp.toString();
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
L Pascalsches Dreieck Java Basics - Anfänger-Themen 4
C Pascalsches Dreieck: Ausgabeproblem Java Basics - Anfänger-Themen 10
K pascalsches Dreieck Java Basics - Anfänger-Themen 8
M Pascalsches Dreieck Java Basics - Anfänger-Themen 12
W Pascalsches Dreieck Java Basics - Anfänger-Themen 19
D Pascalsches Dreieck Java Basics - Anfänger-Themen 9
G Pascalsches Dreieck Java Basics - Anfänger-Themen 8
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
G Magisches Dreieck Java Basics - Anfänger-Themen 2
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
S Überprüfung rechtwinkliges Dreieck Java Basics - Anfänger-Themen 4
Z Warum kein Dreieck aus Sternen? Java Basics - Anfänger-Themen 9
L Dreieck Java Basics - Anfänger-Themen 22
O Erste Schritte Pascalsche Dreieck Java Basics - Anfänger-Themen 3
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
D Pascal'sches Dreieck Java Basics - Anfänger-Themen 6
N Methoden Gleichseitiges Dreieck erstellen Java Basics - Anfänger-Themen 8
U Dreieck Java Basics - Anfänger-Themen 22
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
1 2D-Array, dass das pascalsche Dreieck berechnet Java Basics - Anfänger-Themen 2
L Dreieck Kreis Java Basics - Anfänger-Themen 12
B Dreieck Flächenberechnung Java Basics - Anfänger-Themen 2
B Java Grafikprogrammierung Dreieck Java Basics - Anfänger-Themen 6
I Umgedrehtes Dreieck Java Basics - Anfänger-Themen 3
M Dreieck erstellen Java Basics - Anfänger-Themen 17
J Dreieck Ausgeben Java Basics - Anfänger-Themen 3
R Pascalsche Dreieck Java Basics - Anfänger-Themen 4
R Pascalsche Dreieck Java Basics - Anfänger-Themen 8
H Compiler-Fehler Pascalsche Dreieck Java Basics - Anfänger-Themen 2
M Dreieck prüfen Java Basics - Anfänger-Themen 8
E Pascalsche Dreieck aus Java openbook Java Basics - Anfänger-Themen 3
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
H Dreieck aus Zeichen Java Basics - Anfänger-Themen 4
L Paskalsche Dreieck im Array Java Basics - Anfänger-Themen 2
T Pascalsche Dreieck ERKLÄRUNG Java Basics - Anfänger-Themen 6
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
Antoras Dreieck zeichnen Java Basics - Anfänger-Themen 2
A Problem Gleichseitiges Dreieck aus Sternchen Java Basics - Anfänger-Themen 7
G Pascalsche Dreieck in Dreieckform Java Basics - Anfänger-Themen 2
X Pascalsche Dreieck Java Basics - Anfänger-Themen 6
G Dreieck mit Java Apllet Java Basics - Anfänger-Themen 10
V Dreieck spiegeln Java Basics - Anfänger-Themen 3
L Dreieck soll Farbe ändern Java Basics - Anfänger-Themen 4
L Dreieck füllen Java Basics - Anfänger-Themen 4
X Dreieck ausgeben Java Basics - Anfänger-Themen 3
B Hindergrundfarbe in JPanel und Dreieck zeichnen Java Basics - Anfänger-Themen 4
D Das Problem mit dem Dreieck. Java Basics - Anfänger-Themen 5
B auf der Spitze stehendes Dreieck mit for-Schleifen Java Basics - Anfänger-Themen 6
lan2711 Anfänger: Konstruktion Dreieck Java Basics - Anfänger-Themen 2
G Automatische & manuelle Zeilenumbrüche + Zentrierung ? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben