1. 程式人生 > >【程式33】 題目:打印出楊輝三角形

【程式33】 題目:打印出楊輝三角形

/*
	2017年3月9日17:08:49
	java基礎50道經典練習題 例33
	Athor: ZJY
	Purpose: 
	【程式33】
	題目:打印出楊輝三角形(要求打印出10行如下圖)
	程式分析:
	      1 
	     1 1 
	    1 2 1 
	   1 3 3 1 
	  1 4 6 4 1 
	1 5 10 10 5 1 
 
*/
import java.util.Scanner;

public class ProgramNo33_1
{
	public static void main(String[] args)
	{
	    System.out.print("請輸入楊輝三角需要輸出的層數: ");
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		yangHuiTrigon(number);
	}
	private static void yangHuiTrigon(int n)
	{
	    if(12 < n) {
			System.out.print("不要大於12層!");
			return;
		}
		int[][] array = new int[n][n];
		for (int i=0; i<array.length; i++) 
		{
		    for(int k=i; k<n+n/4; k++)
				System.out.print("   ");
			for (int j=0; j<i+1; j++) 
			{
				if((0 == j)||(i == j)) {
					array[i][j] = 1;
				}else {
					array[i][j] = array[i-1][j-1]+array[i-1][j];
				}
				if(array[i][j] > 99) {
					System.out.print(array[i][j]+"   ");
				}else if(array[i][j] > 9){
					System.out.print(array[i][j]+"    ");
				}else{
					System.out.print(array[i][j]+"     ");
				}
			}
			System.out.println();
		}
		//printArray(array);
	}
	private static void printArray(int[][] array)
	{
		for (int i=0; i<array.length; i++) {
			for (int j=0; j<array[i].length; j++) {
				System.out.print(array[i][j]+" ");
			}
			System.out.println();
		}
	}

}
/*
	2017年3月9日17:08:49
	java基礎50道經典練習題 例33
	Athor: ZJY
	Purpose:  
*/
public class ProgramNo33_2
{
	public static void main(String[] args){
		int[][] n = new int[10][21];
		n[0][10] = 1;
		for(int i=1; i<10; i++)
		  for(int j=10-i; j<10+i+1; j++)
		    n[i][j] = n[i-1][j-1]+n[i-1][j+1];
		for(int i=0; i<10; i++) {
			for(int j=0;j<21;j++) {
				if(n[i][j] == 0)
				  System.out.print("   ");
				else{
			    if(n[i][j] < 10)
			      System.out.print("  "+n[i][j]);//空格為了美觀需要
			    else if(n[i][j] < 100)
			      System.out.print(" "+n[i][j]);
			      else
			        System.out.print(n[i][j]);
			  }
			}
			System.out.println();
		}
	}
}