Исходная программа раскрывает
Свойства треугольника Ян Хуи:
Каждый ряд чисел является симметричным левым и справа, начиная с 1 постепенно становится больше, затем становится меньше и возвращается к 1.
Количество чисел в линии n составляет n.
Сумма чисел в линии n составляет 2^(n-1).
Каждое число равно сумме левого и правого номера предыдущей строки. Это свойство может быть использовано для написания всего треугольника Ян Хуи.
Первое число в строке n составляет 1, второе число составляет 1 × (n-1), третье число составляет 1 × (n-1) × (n-2) /2, а четвертое число-
1 × (n-1) × (n-2) /2 × (n-3) /3… и так далее.
Принцип алгоритма 1:
Используйте двухмерный массив yh [] [], чтобы сохранить данные треугольника Ян Хуи. Размер строк и столбцов - это количество строк, которые необходимо вывести (строка составляет 10 в этой программе).
Используйте петлю, чтобы сделать номер, кроме самого внешнего слоя (за исключением нижнего края треугольника Ян Хуи) в треугольнике Ян Хуи составляет 1;
Используйте утверждение yh [i] [j] = yh [i - 1] [j - 1] + yh [i - 1] [j], чтобы сделать данные в столбце j of j], равную сумме данных в столбце (J -1) строки (i -1) и столбца (J) строки (i -1), то есть каждое число равна сумме двух левых и правильных номеров предыдущей строки.
пакет com.work; открытый класс yanghuisanjiao {public static void main (string [] args) {int [] [] a = new Int [10] [10]; for (int n = 0; n <10; n ++) {a [n] [0] = 1; a [n] [n] = 1; } for (int n = 2; n <10; n ++) {for (int j = 1; j <n; j ++) {a [n] [j] = a [n -1] [j -1]+a [n -1] [j]; }} for (int n = 0; n <10; n ++) {for (int k = 0; k <2 * (10 - n) - 1; k ++) {System.out.print (""); } for (int j = 0; j <= n; j ++) {System.out.print (a [n] [j]+""); } System.out.println (); }}}Метод 2
пакет com.face; импортировать java.util.scanner; открытый класс yanghui {public static void main (string [] args) {printyftriangle (); } <pre Code_snippet_id = "2474965" snippet_file_name = "blog_20170708_2_9005712" name = "code"> <coper>/** * * 1. = исходный элемент в этой позиции + значение предыдущей позиции этой позиции*/</span> </code> </pre> public void printyftriangle () {System.out.println ("Ян Хуи Треугольник, количество строк, которые вы готовите к выводу:"); Scanner Input = новый сканер (System.in); int lines = input.nextint (); // Получить количество строк петли; int [] a = new int [lines + 1]; // временно хранить данные; int предыдущий = 1; // по умолчанию первый номер; for (int i = 1; i <= lines; i ++) {// i используется для управления количеством строк; for (int j = 1; j <= lines-i; j ++) {// выходное пространство, очень просто; System.out.print (""); } for (int j = 1; j <= i; j ++) {int current = a [j]; // Получить следующее число первым, a [j] = предыдущий+current; предыдущий = ток; System.out.print (a [j] + ""); } System.out.println (); }}}Метод 3: рекурсивная реализация
пакет com.face; импортировать java.util.scanner; открытый класс digui {static int fun (int n, int k) {// n, row, k: column if (k == 1 || n == k) return 1; иначе вернуть веселье (n-1, k-1)+веселье (n-1, k); } public static void main (string [] args) {int lines; System.out.println («Пожалуйста, введите количество строк:»); Scanner Input = новый сканер (System.in); lines = input.nextint (); for (int i = 1; i <= lines; i ++) {for (int k = 1; k <lines-i+1; k ++) {System.out.print (""); } for (int j = 1; j <= i; j ++) {System.out.print (fun (i, j)+""); } System.out.println (); }}}Пожалуйста, введите количество строк:
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Давайте поделимся другим примером:
/*** Печать Янхуи Треугольник (Паскал Треугольник), Печать 10 строк**/public class yanghuisanjiao {public static void main (string [] args) {int [] [] a = new int [11] [11]; for (int i = 0; i <10; i ++) {a [i] [0] = 1; a [i] [i] = 1; } for (int i = 1; i <10; i ++) {for (int j = 1; j <i; j ++) {a [i] [j] = a [i-1] [j-1]+a [i-1] [j]; }} for (int i = 0; i <10; i ++) {for (int j = 0; j <10-i; j ++) {System.out.print (""); } for (int k = 0; k <10; k ++) {if (a [i] [k]! = 0) {System.out.print (a [i] [k]+""); }} System.out.println (); }}}результат:
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
Суммировать
Выше приведено примеры программирования Java для реализации кода Pascal Triangle, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!