// 杨辉三角如下:
// 1
// 1 1
// 1 2 1
// 1 3 3 1
// 1 4 6 4 1
// 1 5 10 10 5 1
// ......
// 要求:输出十行的杨辉三角
代码分析及实现:
import java.util.Scanner;
public class Pascals_Triangle{
public static void main(String[] args) {
// 分析:
// 1.首尾元素都是 1
// 2.每行的元素数目(列数) = 所在行数 arr[i] = new int[i + 1]
// 3.中间元素 = 上一行的同列元素 + 上一行的前一列元素
// 即:arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]
// 代码实现:
// 定义行数,先不定义列数
int[][] arr = new int[10][];
//行数
int len_line = arr.length;
// 循环定义每行列数
for(int i = 0;i < arr.length;i++){
arr[i] = new int[i+1];
// 给每行输入元素
for(int j = 0;j < i + 1;j++){
// 判断是非为首尾元素,是,则输入 1
// PS:最后一个元素的列数是指一维数组(每行)的最后一个元素
// 则每行列数可以为:arr[i].length,
// 又因为每行列数和其所在行数相等,则每行列数也可以为i + 1;
if(j == 0 || j == i + 1){
arr[i][j] = 1;
}
// 不是首尾元素而是中间元素,输入分析中的式子
else {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
// 输出杨辉三角
for(int i = 0;i < arr.length;i++){
for(int j = 0;j < i + 1;j++){
System.out.print(arr[i][j] + "\t");
}
System.out.println();//每行输出结束就换行
}
}
}
输出: