package com.syh.demo;
import java.util.Scanner;
/**
* 案例:杨辉三角
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
*/
public class Demo {
public static void main(String[] args) {
//1.提示用户输入一个正整数的行数并使用变量记录
System.out.println("请输入一个正整数:");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
//2.声明指定行数的二维数组
int[][] array = new int[num][];
//3.循环针对不同的行数申请对应的列数并初始化该行的所有元素
for (int row = 0; row < num; row++) {
//申请当前行对应的列数,当row为0时,就是二维数组中的第一行,且第一行就是第一列
array[row] = new int[row + 1];
for (int col = 0; col <= row; col++) {
//当列下标为0时或行下标与列下标相等时的元素值均为1
if (0 == col || row == col) {
array[row][col] = 1;
} else {
//否则该元素为上方元素和上方左侧元素的和
array[row][col] = array[row - 1][col] + array[row - 1][col - 1];
}
}
}
//4.打印二维数组
for (int row = 0; row < num; row++) {
for (int col = 0; col <= row; col++) {
System.out.print(array[row][col] + " ");
}
System.out.println();
}
}
}
杨辉三角~
于 2022-01-17 10:29:22 首次发布