1、问题描述
2、输入和输出格式
3、代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入打印的行数
int rows = scanner.nextInt();
//据观察杨辉三角形第n行有n个元素
//声明一个可以存储最大行数中的元素个数的数组,
int[] arr = new int[rows];
//杨辉三角形的每一行的第一个元素都是1
arr[0] = 1;
//打印第一行
System.out.println(arr[0]);
//打印第2行到第rows行
for(int i = 1;i < rows;i++){
//给当前行中的元素赋值
//因为使用的是一维数组,在给第i行赋值时相当于把第(i - 1)行的元素值覆盖掉了
//在时间和空间的使用上要比二维数组省
for(int j = i - 1;j > 0;j--){
/*
杨辉三角形的第i行的第j个元素 = 第(i - 1)行的第j个元素 + 第(i - 1)行的第(j - 1)个元素
这行代码等同于下面那行代码: arr[j] = arr[j] + arr[j - 1];
*/
arr[j] += arr[j - 1];
}
//杨辉三角形的每一行的最后一个元素都是1
arr[i] = 1;
//打印当前行中的元素
for(int k = 0;k <= i;k++){
System.out.print(arr[k] + " ");
}
System.out.println();
}
}
}