1. 程式人生 > >藍橋杯第五屆JavaC組楊輝三角問題解決方法

藍橋杯第五屆JavaC組楊輝三角問題解決方法

code 自己 格式 謝謝 註意 格式化 args 作用 二維數組

此題是藍橋杯第五屆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:在時間允許的範圍內,先自己動腦子想,如果實在不會,再查閱資料,做總結

如有個別回答錯誤,評論指出,我必更改,謝謝!??

藍橋杯第五屆JavaC組楊輝三角問題解決方法