Das Quellprogramm enthüllt
Eigenschaften von Yang Huis Dreieck:
Jede Zahlenreihe ist symmetrisch links und rechts, beginnend von 1 wird allmählich größer, wird dann kleiner und kehrt zu 1 zurück.
Die Anzahl der Zahlen in Zeile n ist n.
Die Summe der Zahlen in Zeile n beträgt 2^(n-1).
Jede Zahl ist gleich der Summe der linken und rechten Zahlen der vorherigen Zeile. Diese Eigenschaft kann verwendet werden, um das gesamte Yang Hui -Dreieck zu schreiben.
Die erste Zahl in Zeile N ist 1, die zweite Zahl ist 1 × (N-1), die dritte Zahl ist 1 × (N-1) × (N-2) /2 und die vierte Zahl ist
1 × (N-1) × (N-2) /2 × (N-3) /3… und so weiter.
Algorithmus Prinzip 1:
Verwenden Sie ein zweidimensionales Array YH [] [], um die Daten des Yang Hui-Dreiecks zu speichern. Die Größe der Zeilen und Spalten ist die Anzahl der Zeilen, die ausgegeben werden müssen (Zeile ist in diesem Programm 10).
Verwenden Sie die für Schleife, um die Zahl mit Ausnahme der äußersten Schicht (ohne die untere Kante des Yang Hui -Dreiecks) im Yang Hui -Dreieck 1 zu erstellen;
Verwenden Sie die Aussage yh [i] [j] = yh [i - 1] [j - 1] + yh [i - 1] [j], um die Daten in Spalte J von Zeile J gleich der Summe der Daten in Spalte (j -1) von Zeile (i -1) und Spalte (j) der Zeile (I -1) zu erstellen, ist die Zahl der beiden linken und rechten Zahlen der vorherigen und rechten Zahlen.
Paket com.work; public class yanghuisanjiao {public static void main (String [] args) {int [] [] a = new int [10] [10]; für (int n = 0; n <10; n ++) {a [n] [0] = 1; a [n] [n] = 1; } für (int n = 2; n <10; n ++) {für (int j = 1; j <n; j ++) {a [n] [j] = a [n -1] [j -1]+a [n -1] [j]; }} für (int n = 0; n <10; n ++) {für (int k = 0; k <2 * (10 - n) - 1; k ++) {System.out.print (""); } für (int j = 0; j <= n; j ++) {System.out.print (a [n] [j]+""); } System.out.println (); }}}Methode 2
Paket com.face; import Java.util.scanner; public class yanghui {public static void main (String [] args) {PrintyfTriangle (); } <pre code_snippet_id = "2474965" snippet_file_name = "blog_20170708_2_9005712" name = "code"> <code> <span>/** * 1 Um die folgende Implementierung zu verstehen, müssen Sie zunächst verstehen, dass das Element des Default -Werts. = Das ursprüngliche Element in dieser Position + Der Wert der vorherigen Position dieser Position*/</span> </code> </pre> public static void PrintyfTriangle () {System.out.println ("Yang Hui -Dreieck, die Anzahl der Zeilen, die Sie ausgeben:"); Scanner input = neuer Scanner (System.in); int line = input.nextint (); // Erhalten Sie die Anzahl der Zeilen der Schleife; int [] a = new int [Zeilen + 1]; // Daten vorübergehend speichern; int vorher = 1; // Standard -erste Nummer; für (int i = 1; i <= line; i ++) {// i wird verwendet, um die Anzahl der Zeilen zu steuern; für (int j = 1; j <= line-i; j ++) {// Ausgabespeicher, sehr einfach; System.out.print (""); } für (int j = 1; j <= i; j ++) {int current = a [j]; // Erhalten Sie zuerst die nächste Zahl, a [j] = vorher+current; vorher = Strom; System.out.print (a [j] + ""); } System.out.println (); }}}Methode 3: Rekursive Implementierung
Paket com.face; import Java.util.scanner; public class digui {static int fun (int n, int k) {// n, row, k: spalte if (k == 1 || n == k) return 1; sonst return fun (n-1, k-1)+fun (n-1, k); } public static void main (String [] args) {int Lines; System.out.println ("Bitte geben Sie die Anzahl der Zeilen ein:"); Scanner input = neuer Scanner (System.in); line = input.nextint (); für (int i = 1; i <= line; i ++) {für (int k = 1; k <line-i+1; k ++) {System.out.print (""); } für (int j = 1; j <= i; j ++) {System.out.print (fun (i, j)+""); } System.out.println (); }}}Bitte geben Sie die Anzahl der Zeilen ein:
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Lassen Sie uns ein weiteres Beispiel teilen:
/*** Drucken Yanghui -Dreieck (Pascal -Dreieck), Print 10 Zeilen**/öffentliche Klasse yanghuisanjiao {public static void main (String [] args) {int [] [] a = new int [11] [11]; für (int i = 0; i <10; i ++) {a [i] [0] = 1; a [i] [i] = 1; } für (int i = 1; i <10; i ++) {für (int j = 1; j <i; j ++) {a [i] [j] = a [i-1] [j-1]+a [i-1] [j]; }} für (int i = 0; i <10; i ++) {für (int j = 0; j <10-i; j ++) {System.out.print (""); } für (int k = 0; k <10; k ++) {if (a [i] [k]! = 0) {System.out.print (a [i] [k]+""); }} System.out.println (); }}}Ergebnis:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Zusammenfassen
In der oben genannten Seite geht es um Beispiele für Java -Programmierung zur Implementierung des Pascal -Dreieckscode. Ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!