소스 프로그램 공개
Yang Hui의 삼각형의 속성 :
각 숫자 행은 왼쪽과 오른쪽으로 대칭이며 1에서 시작하여 점차 커지면 점점 더 작아지고 1로 돌아갑니다.
N 라인의 숫자 수는 n입니다.
줄 n에있는 숫자의 합은 2^(n-1)입니다.
각 숫자는 이전 줄의 왼쪽 및 오른쪽 번호의 합과 같습니다. 이 속성은 전체 Yang Hui Triangle을 작성하는 데 사용될 수 있습니다.
줄의 첫 번째 숫자는 1이고, 두 번째 숫자는 1 × (n-1), 세 번째 숫자는 1x (n-1) × (n-2) /2이고 네 번째 숫자는입니다.
1 × (N-1) × (N-2) /2 × (N-3) /3… 등.
알고리즘 원리 1 :
Yang Hui Triangle의 데이터를 저장하려면 2 차원 배열 yh [] []를 사용하십시오. 행과 열의 크기는 출력이 필요한 행의 수입니다 (이 프로그램에서 행은 10입니다).
Yang Hui Triangle에서 가장 바깥 쪽 층을 제외한 숫자를 제외하고는 숫자를 사용하여 숫자를 만듭니다.
명령문 yh [i] [j] = yh [i -1] [j -1] + yh [i -1] [j]를 사용하여 행 j 열의 데이터를 행 j 열의 데이터를 행 (i -1) 및 행 (i -1)의 열 (j -1) 및 열 (j) 열의 합과 동일하게 만듭니다.
패키지 com.work; Public Class 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 import; public class yanghui {public static void main (String [] args) {printyftriangle (); . = 해당 위치의 원래 요소 +이 위치의 이전 위치의 값*/</span> </code> </pre> public static void printyftriangle () {System.out.println ( "Yang Hui Triangle, 출력을 준비하는 줄의 수;"); 스캐너 입력 = 새 스캐너 (System.In); int lines = input.nextint (); // 루프의 줄 수를 얻습니다. int [] a = new int [lines + 1]; // 데이터를 임시로 저장합니다. int previous = 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] = previous+current; 이전 = 현재; System.out.print (a [j] + ""); } system.out.println (); }}}방법 3 : 재귀 구현
패키지 com.face; java.util.scanner import; 공개 클래스 digui {static int fun (int n, int k) {// n, row, k : 열 if (k == 1 || n == k) 반환 1; 그렇지 않으면 재미 (N-1, K-1)+재미 (N-1, K); } public static void main (String [] args) {int line; System.out.println ( "줄 수를 입력하십시오 :"); 스캐너 입력 = 새 스캐너 (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
또 다른 예를 공유합시다.
/*** Yanghui Triangle (Pascal Triangle), 인쇄 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
요약
위의 내용은 Pascal Triangle 코드를 구현하기위한 Java 프로그래밍의 예제에 관한 모든 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!