此題是藍橋杯第五屆Java組考試題目之一,一道解決列印楊輝三角的填空題
以下是具體內容:
Question:
二項式的係數規律,我國數學家很早就發現了。
如【圖1.png】,我國南宋數學家楊輝1261年所著的《詳解九章演算法》一書裡就出現了。
其排列規律:
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
如下的程式,用來建立N行的楊輝三角形。請填寫劃線部分缺少的程式碼。
注意:只填寫劃線部分的程式碼,不要填寫任何多餘的內容。
public class A
{
public static void main(String[] args)
{
int N = 8;
int[][] a = new int[N][N] ;
for(int i=0; i<N; i++){
a[i][0] = 1;
a[i][i] = 1;
}
for(int i=1; i<N; i++){
for(int j=1; j<i; j++) _____________________________; //填空
}
for(int i=0; i<N; i++){
for(int j=0; j<=i; j++) System.out.print(String.format(“%-5d”, a[i][j]));
System.out.println();
}
}
}
Answer:
1 public class Day1 2 { 3 public static void main(String[] args) 4 { 5 int N = 8; 6 //拋開題目來講,如果想要列印更多行楊輝三角,改N的數值即可 7 int[][] a = new int[N][N] ; 8 //定義二維陣列,題目中的楊輝三角數目總共8行8列,N = 8; 9 10 11 for(int i=0; i<N; i++){ 12 a[i][0] = 1; 13 a[i][i] = 1; 14 } 15 //定義每一行的第一個數字與最後一個數字的值都是為數字1 16 17 18 for(int i=1; i<N; i++){ 19 for(int j=1; j<i; j++) 20 a[i][j]=a[i-1][j-1]+a[i-1][j]; //填空 21 } 22 //這一步主要看演算法,楊輝三角的外圍已經做好,只差往裡邊填寫數字,找其相應的規律,進行填補 23 24 25 for(int i=0; i<N; i++){ 26 for(int j=0; j<=i; j++) System.out.print(String.format("%-5d", a[i][j])); 27 System.out.println(); 28 } 29 //將其列印輸出,String.format();的作用是進行字串格式化,重新按照指定的格式進行輸出,"-"的 30 //作用是靠左,注意一點,print,不要加ln 31 32 33 } 34 }
總結:
1:知識是靠自己一步一步測試程式碼、查詢資料,自己總結來的,這樣的方法比較牢固,記得紮實,如果不測試,只靠眼睛看,也就只是看看。
2:遇到認為難的題目,不要慌,不要否定自己,先靜下心來,仔細分析題目,找方法解決問題
3:在時間允許的範圍內,先自己動腦子想,如果實在不會,再查閱資料,做總結
如有個別回答錯誤,評論指出,我必更改,謝謝!?