这主要时处理空格,一个数字占6个空格,行首要输出一定数量的空格另外利用二维数组,知道这两点就好办了
免责声明:注意我就是随手一写,对算法效率有要求的慎用
/** * 5、打印杨辉三角形,10行,要求是正规的三角形 */ public class Test5 { public static void main(String[] args) { int[][] array = new int[10][10]; //第i行 第j列,先生成数据,再打印 for(int i =0;i<10;i++){ for(int j=0;j<=i;j++){ if(j==0||j==i){ array[i][j] = 1; }else{ array[i][j] = array[i-1][j-1]+array[i-1][j]; } } } //和上边分开,一个初始化数据,一个打印 for(int i =0;i<10;i++) { printBlankByLine(i); for (int j = 0; j<=i; j++) { printByNumberCount(array[i][j]); if(j==i){ System.out.println(); } } } } public static void printByNumberCount(int number){ if(number<10){ System.out.print(" "+number); }else if(number<100){ System.out.print(" "+number); }else{ System.out.print(" "+number); } } public static void printBlankByLine(int line){ for(int j=8;j>=line;j--){ System.out.print(" "); } } }