Java :: Aufgabe #94
2 Lösungen
Erstellung Pascalsches Dreieck
Anfänger - Java
von BlackBird321
- 04.06.2015 um 22:43 Uhr
Schreibe ein Programm, welches das Pascalsches Dreieckwiedergibt.
Das Programm soll die Anzahl der Reihen entgegennehmen und dementsprechend widergeben (Nur halt ohne die Punkte :o)).
Beispiel für 5 Reihen:
....1
...11
..121
.1331
14641
Das Programm soll die Anzahl der Reihen entgegennehmen und dementsprechend widergeben (Nur halt ohne die Punkte :o)).
Beispiel für 5 Reihen:
....1
...11
..121
.1331
14641
Lösungen:
import java.util.Scanner;
public class PDreieck {
public static void main(String[] args) {
System.out.println("********** Pascalsches Dreieck **********");
System.out.print("Bitte geben Sie die Anzahl der Reihen an: ");
Scanner eingabe = new Scanner(System.in);
int reihen = eingabe.nextInt();
System.out.println("\nPascalsches Dreieck nach " + reihen + " Reihen\n");
pDreieck_ausgabe(reihen);
}
//Methode zur Berechnung dser Fakultät einer positiven Zahl
static int fak(int zahl){
int fakultaet = 1;
while(zahl > 0){
fakultaet = fakultaet*zahl;
zahl--;
}
return fakultaet;
}
//Methode zur Berechnung der Kombination von n über k: n!/k!*(n-k)!
static int kombination(int n, int k){
int n_fak = fak(n);
int k_fak = fak(k);
int nk_fak = fak(n-k);
return n_fak/(k_fak*nk_fak);
}
//Methode zur Berechnung der entsprechenden Koeffiziente im pascalschen Dreick der n. Reihe
static int[] koeffiziente(int n){
int[] koeff = new int[n+1]; //Ein Array zum Speichern der berechneten Koeffiziente
for(int i = 0; i <= n; i++){
koeff[i] = kombination(n, i); //Berechne die Koeffziente und speichere sie in ein Array
}
return koeff;
}
//Methode zur Ausgabe des pascalschen Dreieck für n Reihen
static void pDreieck_ausgabe(int n){
for(int j = 0; j < n; j++){
int koeff[] = new int[j+1]; //Ein Array zum Speichern der berechneten Koeffiziente
koeff = koeffiziente(j);
for(int i = 1; i <= n-j; i++){
System.out.print(" ");
}
//Ausgabe der nächsten Koeffiziente
for(int count = 0; count <= j; count++){
System.out.print(koeff[count] + " ");
}
System.out.println(); //gehe zur nächsten Reihe
}
}
}
import java.util.*;
public class PascalschesDreieck {
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("### Pascalsches Dreieck ###\n");
System.out.print("Wie viele Reihen?\t");
int reihen = scanner.nextInt();
for(int i = 1; i <= reihen; i++) {
for(int r = i; r < reihen; r++) {
System.out.print(" ");
}
for(int j = 0; j < i ; j++) {
System.out.print(ueber(i-1,j) + " ");
}
System.out.println("");
}
scanner.close();
}
public static int fakultaet(int zahl) {
int res = 1;
for(int durchgang = 2; durchgang <=zahl; durchgang++) {
res *= durchgang;
}
return res;
}
public static int ueber(int n, int k) {
int nn = fakultaet(n);
int kk = fakultaet(k);
int erg = nn / (kk * (fakultaet(n-k)));
return erg;
}
}