Program sumber mengungkapkan
Properti Segitiga Yang Hui:
Setiap baris angka simetris kiri dan kanan, mulai dari 1 secara bertahap menjadi lebih besar, kemudian menjadi lebih kecil, dan kembali ke 1.
Jumlah angka dalam baris n adalah n.
Jumlah angka pada baris n adalah 2^(n-1).
Setiap angka sama dengan jumlah nomor kiri dan kanan dari baris sebelumnya. Properti ini dapat digunakan untuk menulis seluruh segitiga Yang Hui.
Angka pertama dalam baris n adalah 1, angka kedua adalah 1 × (n-1), angka ketiga adalah 1 × (n-1) × (n-2) /2, dan angka keempat adalah
1 × (n-1) × (n-2) /2 × (n-3) /3 ... dan seterusnya.
Prinsip Algoritma 1:
Gunakan array dua dimensi YH [] [] untuk menyimpan data segitiga Yang Hui. Ukuran baris dan kolom adalah jumlah baris yang perlu output (baris adalah 10 dalam program ini).
Gunakan loop untuk membuat nomor kecuali lapisan terluar (tidak termasuk tepi bawah segitiga Yang Hui) di segitiga Yang Hui adalah 1;
Gunakan pernyataan yh [i] [j] = yh [i - 1] [j - 1] + yh [i - 1] [j] untuk membuat data dalam kolom j baris j sama dengan jumlah data dalam kolom (j -1) dari baris (i -1) dan kolom (j) baris (I -1), yaitu setiap angka sama dengan jumlah dari dua bilangan kiri dan kanan dari baris sebelumnya.
paket com.work; Kelas Publik Yanghuisanjiao {public static void main (string [] args) {int [] [] a = int int [10] [10]; untuk (int n = 0; n <10; n ++) {a [n] [0] = 1; a [n] [n] = 1; } untuk (int n = 2; n <10; n ++) {untuk (int j = 1; j <n; j ++) {a [n] [j] = a [n -1] [j -1]+a [n -1] [j]; }} untuk (int n = 0; n <10; n ++) {for (int k = 0; k <2 * (10 - n) - 1; k ++) {System.out.print (""); } untuk (int j = 0; j <= n; j ++) {System.out.print (a [n] [j]+""); } System.out.println (); }}}Metode 2
paket com.face; impor java.util.scanner; kelas publik Yanghui {public static void main (string [] args) {printyftriangle (); } <pre code_snippet_id = "2474965" snippet_file_name = "blog_20170708_2_9005712" name = "code"> <span> <span>/** * 1 untuk pemahaman pada waktu yang baru, Anda harus memahami bahwa Anda harus memahami bahwa nilai default di dalamnya adalah Nilai Default di ARED AREY ITER PERTAMA SETIAP UNTUK MANA PERTAMA SETIAP UNTUKNYA, Anda harus memahami bahwa Nilai Default di ARED ARED ATASI ADALAH ADALAH PERTAMA SETIAP UNTUK TERLIHAT. = elemen asli dalam posisi itu + nilai posisi sebelumnya dari posisi ini*/</span> </code> </pr Pre> public static void printyftriangle () {System.out.println ("Yang Huile, jumlah baris yang Anda persiapkan untuk output:"); Input Pemindai = Pemindai Baru (System.in); int lines = input.nextInt (); // Dapatkan jumlah baris loop; int [] a = int baru [baris + 1]; // Simpan data sementara; int sebelumnya = 1; // Nomor pertama default; untuk (int i = 1; i <= baris; i ++) {// i digunakan untuk mengontrol jumlah garis; untuk (int j = 1; j <= lines-i; j ++) {// ruang output, sangat mudah; System.out.print (""); } untuk (int j = 1; j <= i; j ++) {int current = a [j]; // Dapatkan nomor berikutnya terlebih dahulu, a [j] = sebelumnya+arus; Sebelumnya = saat ini; System.out.print (A [j] + ""); } System.out.println (); }}}Metode 3: Implementasi Rekursif
paket com.face; impor java.util.scanner; kelas publik digui {static int fun (int n, int k) {// n, baris, k: kolom if (k == 1 || n == k) return 1; lain return fun (n-1, k-1)+fun (n-1, k); } public static void main (string [] args) {int line; System.out.println ("Harap masukkan jumlah baris:"); Input Pemindai = Pemindai Baru (System.in); baris = input.nextInt (); untuk (int i = 1; i <= lines; i ++) {for (int k = 1; k <line-i+1; k ++) {System.out.print (""); } untuk (int j = 1; j <= i; j ++) {System.out.print (fun (i, j)+""); } System.out.println (); }}}Harap masukkan jumlah baris:
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Mari Bagikan Contoh Lain:
/*** Cetak Yanghui Triangle (Pascal Triangle), cetak 10 baris**/kelas publik Yanghuisanjiao {public static void main (string [] args) {int [] [] a = int baru [11] [11]; untuk (int i = 0; i <10; i ++) {a [i] [0] = 1; a [i] [i] = 1; } untuk (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]; }} untuk (int i = 0; i <10; i ++) {for (int j = 0; j <10-i; j ++) {System.out.print (""); } untuk (int k = 0; k <10; k ++) {if (a [i] [k]! = 0) {System.out.print (a [i] [k]+""); }} System.out.println (); }}}hasil:
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
Meringkaskan
Di atas adalah semua tentang contoh pemrograman Java untuk mengimplementasikan kode segitiga Pascal, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!