โปรแกรมแหล่งที่มาเปิดเผย
คุณสมบัติของสามเหลี่ยมของ Yang Hui:
แต่ละแถวของตัวเลขมีความสมมาตรซ้ายและขวาเริ่มจาก 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 ในโปรแกรมนี้)
ใช้ For Loop เพื่อสร้างหมายเลขยกเว้นชั้นนอกสุด (ไม่รวมขอบด้านล่างของสามเหลี่ยมหยางฮุ่ย) ในสามเหลี่ยมหยางฮุ่ยคือ 1;
ใช้คำสั่ง yh [i] [j] = yh [i - 1] [j - 1] + yh [i - 1] [j] เพื่อสร้างข้อมูลในคอลัมน์ j ของแถว j เท่ากับผลรวมของข้อมูลในคอลัมน์ (j -1) ของแถว (I -1) และคอลัมน์ (j) ของแถว (i -1)
แพ็คเกจ com.work; ชั้นเรียนสาธารณะ Yanghuisanjiao {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] [] a = new int [10] [10]; สำหรับ (int n = 0; n <10; n ++) {a [n] [0] = 1; a [n] [n] = 1; } สำหรับ (int n = 2; n <10; n ++) {สำหรับ (int j = 1; j <n; j ++) {a [n] [j] = a [n -1] [j -1]+a [n -1] [j]; }} สำหรับ (int n = 0; n <10; n ++) {สำหรับ (int k = 0; k <2 * (10 - n) - 1; k ++) {system.out.print (""); } สำหรับ (int j = 0; j <= n; j ++) {system.out.print (a [n] [j]+""); } system.out.println (); -วิธีที่ 2
แพ็คเกจ com.face; นำเข้า java.util.scanner; ระดับสาธารณะ Yanghui {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {printyftriangle (); } <pre code_snippet_id = "2474965" snippet_file_name = "blog_20170708_2_9005712" ชื่อ = "รหัส"> <code> <pan>/** * 1 เพื่อทำความเข้าใจการใช้งานต่อไปนี้ องค์ประกอบดั้งเดิมในตำแหน่งนั้น + ค่าของตำแหน่งก่อนหน้าของตำแหน่งนี้*/</span> </code> </son> โมฆะสาธารณะคงที่ printyftriangle () {system.out.println ("Yang Hui Triangle จำนวนบรรทัดที่คุณกำลังเตรียมการส่งออก:"); สแกนเนอร์อินพุต = ใหม่สแกนเนอร์ (System.in); int lines = input.nextint (); // รับจำนวนบรรทัดของลูป; int [] a = new int [lines + 1]; // เก็บข้อมูลชั่วคราว; int ก่อนหน้า = 1; // หมายเลขแรกเริ่มต้น; สำหรับ (int i = 1; i <= lines; i ++) {// ฉันใช้เพื่อควบคุมจำนวนบรรทัด; สำหรับ (int j = 1; j <= lines-i; j ++) {// พื้นที่เอาต์พุตง่ายมาก; System.out.print (""); } สำหรับ (int j = 1; j <= i; j ++) {int current = a [j]; // รับหมายเลขถัดไปก่อน, A [j] = ก่อนหน้า+ปัจจุบัน; ก่อนหน้า = ปัจจุบัน; System.out.print (a [j] + ""); } system.out.println (); -วิธีที่ 3: การใช้งานซ้ำ
แพ็คเกจ com.face; นำเข้า java.util.scanner; คลาสสาธารณะ digui {int fun (int n, int k) {// n, แถว, k: คอลัมน์ถ้า (k == 1 || n == k) กลับ 1; อื่น ๆ กลับมาสนุก (n-1, k-1)+ความสนุก (n-1, k); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int lines; System.out.println ("โปรดป้อนจำนวนบรรทัด:"); สแกนเนอร์อินพุต = ใหม่สแกนเนอร์ (System.in); lines = input.nextint (); สำหรับ (int i = 1; i <= lines; i ++) {สำหรับ (int k = 1; k <lines-i+1; k ++) {system.out.print (""); } สำหรับ (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 บรรทัด**/คลาสสาธารณะ Yanghuisanjiao {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] [] a = int ใหม่ [11] [11]; สำหรับ (int i = 0; i <10; i ++) {a [i] [0] = 1; A [i] [i] = 1; } สำหรับ (int i = 1; i <10; i ++) {สำหรับ (int j = 1; j <i; j ++) {a [i] [j] = a [i-1] [j-1]+a [i-1] [j]; }} สำหรับ (int i = 0; i <10; i ++) {สำหรับ (int j = 0; j <10-i; j ++) {system.out.print (""); } สำหรับ (int k = 0; k <10; k ++) {ถ้า (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 ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!