ブルーブリッジカップ-基礎練習-楊輝三角形


問題の説明
楊輝三角形は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. 
--------------------------------------------------------------------------
三角形の辺の数字が1であることがわかります.他の数字は肩の2つの数字の和です.
まず,2次元配列aを定義し,2つのfor文でa[i][0]とa[i][i]に1,すなわち三角形の辺の数字が1である.
そして、2つのfor文でa[i][0]とa[i][i]を除く要素に値を割り当て、a[i][j]=a[i-1][j-1]+a[i-1][j]
import java.util.Scanner;
	
public class Main{
	static int[][] getTriangle(int num){
		int[][] a = new int [num][num];
		for(int i=0 ; i<a.length ; i++){
			a[i][0] = 1;
			a[i][i] = 1;
		}
		for(int i=1 ; i<a.length ; i++){
			for(int j=1; j<=i ; j++){
				a[i][j] = a[i-1][j-1]+a[i-1][j];
			}
		}
		return a;
	}
	static void print(int[][]ary){
		for(int i=0 ; i<ary.length ; i++){
			for(int j=0 ; j<=i ; j++){
				System.out.print(ary[i][j]+" ");
			}
			System.out.println(); //         
		}
		
		
		
	}
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][]a = getTriangle(n);
		print(a);
		
		
	}
}

ここで出力を割り当てるときはfor文のiとjの範囲制御に注意する