1. 程式人生 > >楊輝三角的打印(Java)

楊輝三角的打印(Java)

tint scanner () inpu class 兩數之和 NPU 初始化 length

//
//輸入指定的行數,打印楊輝三角
//
//每個數等於它上方兩數之和。
//每行數字左右對稱,由1開始逐漸變大。
//第n行的數字有n項。
//
//
//
//可從打印菱形的思想出發:?????

// 存在問題: 隨著行數的增加,數字增大,占用空間增大,慢慢變得不“對稱”。
package com.day16;
import java.util.Scanner;
public class testYangHuiSanJiao{
    public static Scanner Sc =new Scanner(System.in);
    
    
    //初始化行數組,是每一行數組第一元素為1;
public static int[][] inital(int [][] ary){ for( int i=0;i<=ary.length-1;++i){ ary [i] = new int [i+1]; //每行元素個數本等於行數i, //但註意到 數組是從 0 開始的,故行數組初始化為[i+1]的大小 ary[i][0]=1;//首元素初始化為1; ary[i][i]=1; //
末元素初始化為1; } int row,colum; for(row = 2;row <= ary.length-1;row++){ //前兩行初始化已完成,從第三行開始 for(colum = 1;colum < row;colum++){ //每一行數組第一個元素(下標為0)已初始化為1, //從第二個元素(下標為1)開始
//末元素已初始化為1,故column < row ; ary[row][colum]=ary[row-1][colum-1]+ary[row-1][colum]; } } // //Check row ary[][] // // for(int i = 0; i<=ary.length-1;i++){ // for(int j = 0; j<=i;j++){ //初始化大小決定 j<=i // System.out.print(ary[i][j]+" "); // } // System.out.println(); // // } // //測試通過,初始化正確; return ary; } public static void prtyhsj (int [][] ary){ int cbkn= ary.length-0 ; for(int row = 0;row <= ary.length-1;row++){ //每行首先打印相應的空格; for(int i = cbkn ; i > 0;i--){ System.out.print(" "); } //在打印相應行數組的元素+空格; for(int col = 0;col <= row; col++){ System.out.print(ary[row][col]); System.out.print(" "); } //打印後續對稱連續空格 for(int i = cbkn;i > 0;i--){ System.out.print(" "); } cbkn--; System.out.println();//一行打印結束執行換行 } } public static void main (String [] args){ System.out.println("Please input row:"); int rownum = Sc.nextInt(); System.out.println("Printing "+rownum+" row YHSJ"); //定義二維數組,第一維為行數組,並初始化 int [][] rowary = new int [rownum][] ; inital(rowary); prtyhsj(rowary); } }

楊輝三角的打印(Java)