ソースプログラムが明らかにします
Yang Huiの三角形の特性:
数字の各行は対称的な左右になり、1から徐々に大きくなり、その後小さくなり、1に戻ります。
nの数字の数はnです。
線nの数値の合計は2^(n-1)です。
各数値は、前の行の左右の数の合計に等しくなります。このプロパティは、Yang Hui Triangle全体を書くために使用できます。
列nの最初の数値は1、2番目の数値は1×(n-1)、3番目の数値は1×(n-1)×(n-2) /2、4番目の数字は
1×(n-1)×(n-2) /2x(n-3) /3…など。
アルゴリズム原則1:
Yang Hui Triangleのデータを保存するには、2次元配列YH [] [] []を使用します。行と列のサイズは、出力する必要がある行の数です(このプログラムでは行は10です)。
Yang Hui Triangleの最外層(Yang Hui Triangleの下端を除く)を除く数値を作成するには、for Loopを使用して、Yang Hui Triangleの数字を除きます。
ステートメントyh [i] [j] = yh [i -1] [j -1] + yh [i -1] [j]を使用して、行Jの列jのデータを行Jの列jのデータを、行(i -1)の列(j -1)の列(i -1)の列(i -1)の列(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]+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をインポートします。 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次の実装を理解するには、最初にあなたはementien in int inpect in post in pose in post in print in post in print in ements in int remention in in in ementienその位置の元の要素 +この位置の前の位置の値*/</span> </code> </pre> public static void printyftriangle(){system.out.println( "yang hui triangle、出力の準備をしている線の数:");スキャナーinput = new Scanner(System.in); int lines = input.nextint(); //ループの行の数を取得します。 int [] a = new int [lines + 1]; //一時的にデータを保存します。 int forter = 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]; //最初に次の番号を取得します。前= 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:列if(k == 1 || n == k)return 1;それ以外の場合は、Fun(N-1、K-1)+Fun(N-1、K)を返します。 } public static void main(string [] args){int lines; System.out.println( "行数を入力してください:");スキャナーinput = new Scanner(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]+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プログラミングの例についてのすべてです。すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!