1. 程式人生 > >【藍橋杯】基礎訓練 楊輝三角形

【藍橋杯】基礎訓練 楊輝三角形

問題描述

楊輝三角形又稱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 {
	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<n;i++){
			arr[i][0] = 1;
		}
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(i==j){
					arr[i][j] = 1;
				} else if(i>j && j!=0){
					arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
				}
			}
		}
		//輸出楊輝三角
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(i>=j){
					System.out.print(arr[i][j]+" ");
				}
			}
			System.out.println();
		}
		sc.close();
	}
}