Java :: Aufgabe #94

2 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von Ngakoyo (110 Punkte) - 23.10.2015 um 07:36 Uhr
Quellcode ausblenden Java-Code
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
		
		}
	}
}
vote_ok
von paddlboot (3970 Punkte) - 22.07.2019 um 15:17 Uhr
Quellcode ausblenden Java-Code
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;
	}
}
2084785

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.