1. 程式人生 > >Java:楊輝三角

Java:楊輝三角

問題及程式碼:

/*
 * 問題描
 * 楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的係數。
 * 它的一個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。
 * 下面給出了楊輝三角形的前4行:
   1
  1 1
 1 2 1
1 3 3 1
給出n,輸出它的前n行。
輸入格式
輸入包含一個數n。
輸出格式
輸出楊輝三角形的前n行。每一行從這一行的第一個數開始依次輸出,中間使用一個空格分隔。請不要在前面輸出多餘的空格。 
樣例輸入
4
樣例輸出
1
1 1
1 2 1
1 3 3 1 
資料規模與約定
1 <= n <= 34。
*/
import java.util.Scanner;
public class Main {
	/**
	 * @param args
	 */
	public static void yang(int n){
		int [][]mat = new int[n][];  
        int i,j = 0;  
        for(i=0;i<n;i++){  
            mat[i] = new int[i+1];  
            mat[i][0] = 1;  
            mat[i][i] = 1;  
            for(j = 1;j < i; j++){  
                mat[i][j] = mat[i-1][j-1]+mat[i-1][j];  
            }  
        }  
        for(i = 0;i < mat.length;i++){  
            for(j = 0;j<mat[i].length;j++){  
            	if(i==j)
            		System.out.print(mat[i][j]);
            	else
                    System.out.print(mat[i][j]+" ");  
            }  
            System.out.println();
        }
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int n;
		Scanner in=new Scanner(System.in);
		n=in.nextInt();
		yang(n);
	}
}
問題分析:
mat[i] = new int[i+1]; ??
為什麼不能<pre name="code" class="java">int [][]mat = new int[n][n];??
類名一定要是Main!!