安全程式設計(十六)- 楊輝三角
阿新 • • 發佈:2018-11-12
1.簡單介紹
楊輝三角大家應該都不陌生,我就不多說了!
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
大致就是這樣的。
2.兩種實現方法
2.1這一種是常規的一般方法,外側的數字都是1,除了外側的則是通過1+1=2,1+2=3,2+1=3這種方法得來:
package cn.nuist.pers.October8; import java.util.Scanner; public class YangHuiSanJiao { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //鍵盤輸入行數 int[][] arr = new int[n][n]; //建立一個二維陣列 for(int i = 0;i < arr.length;i++) { arr[i] = new int[i+1]; //將長度為i+1的int型資料賦給陣列 } for(int i = 0;i < arr.length;i++) { arr[i][0] = 1; //最左側的數字為1 arr[i][i] = 1; //最右側的數字為1 for(int j = 1;j<i;j++) { //第二層迴圈從1開始,條件為j<i arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; } } for(int i = 0;i<arr.length;i++) { //列印數字 for(int j = 0;j<arr[i].length;j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }
2.2另一種則是通過:
package cn.nuist.pers.October8; import java.util.Scanner; public class YangHuiSanJiaoPlus { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //鍵盤輸入行數 for(int i = 0;i<n;i++) { int num = 1; System.out.format("%"+(n-i)*2+"s", ""); //格式化輸出資料 for(int j = 0;j<=i;j++) { System.out.format("%4d",num); num = num*(i-j)/(j+1); //自己在草稿紙上演算一下你就會發現這。。 } System.out.println(); } } }
這種簡便卻高深的方法得來,