Tips
打印三角的操作 :
- 每行打印前预留空格
- 打印指定数量的星号后换行
- 重复循环打印直至完成所有打印结果
杨辉三角:
- 三角规律空格最大对称值为 5 大于 5 则会变形
- 三角规律为当前值为上一个值加上前一个值 首尾的数字值相等
- 参考二维数组的规律生成数值
import java.util.Scanner;/*** Created Wenyu.** @author caicaiwoshishei>...* @createTime 2022-11-07 19:06* @Describe [打印杨辉三角]* 1 通过二维数组存储值* 1 1* 1 2 1* 1 3 3 1* 1 4 6 4 1* 1 5 10 10 5 1* 理想打印效果 基础里边界1space* 1 7space 6* 1 1 6space 5* 1 2 1 5space 4* 1 3 3 1 4space 3* 1 4 6 4 1 3space 2* 1 5 10 10 5 1 2space 1* @since 1.0*/
public class PascalTriangles {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入需要打印的行数:");int inputNumberVal = 0;try {inputNumberVal = scanner.nextInt();} catch (NullPointerException e) {e.printStackTrace();}printTriangle(inputNumberVal);}public static void printTriangle(int endNumberVal){/*** 打印三角的操作 :* 1) 每行打印前预留空格* 2) 打印指定数量的星号后换行* 3) 重复循环打印直至完成所有打印结果** 杨辉三角:* 1) 三角规律空格最大对称值为 5 大于 5 则会变形* 2) 三角规律为当前值为上一个值加上前一个值 首尾的数字值相等* 3) 参考二维数组的规律生成数值*/Integer [][] triangleArrList = new Integer[endNumberVal][endNumberVal];for (int begin_num = 0; begin_num < endNumberVal; begin_num ++){//通过二维数组生成每一行的数值for (int save_index = 0; save_index <= begin_num; save_index ++){if (save_index != begin_num && save_index != 0 && begin_num > 0 && save_index > 0){triangleArrList[begin_num][save_index] = triangleArrList[begin_num - 1][save_index] + triangleArrList[begin_num - 1][save_index - 1];}else {triangleArrList[begin_num][save_index] = 1;}}//打印输入当前行数的二维数组的内容for (int print_index = endNumberVal-1; print_index >= 0;print_index --){if (triangleArrList[begin_num][print_index] != null && triangleArrList[begin_num][print_index] != 0){System.out.print(triangleArrList[begin_num][print_index]+" ");}else {System.out.print(" ");}}//换行System.out.println();}System.out.println("二维数组存储数值情况如下:");for (Integer[] integers : triangleArrList) {for (Integer integer : integers) {System.out.print(integer+ " ");}System.out.println();}}}