📜  打印帕斯卡三角形的Java程序(1)

📅  最后修改于: 2023-12-03 15:25:45.663000             🧑  作者: Mango

打印帕斯卡三角形的Java程序

帕斯卡三角形是一种由数字组成的三角形,第一行只有一个数字1,其它每行数字是由上一行相邻两个数字相加而得出的。打印帕斯卡三角形是一个常见的编程问题,以下是一个使用Java语言编写的打印帕斯卡三角形的程序示例。

程序示例
public class PascalTriangle {
    public static void main(String[] args) {
        int numRows = 10; // 打印的行数
        int[][] triangle = new int[numRows][numRows];

        // 初始化第一列为1
        for (int i = 0; i < numRows; i++) {
            triangle[i][0] = 1;
        }

        // 通过递推公式计算每个数值
        for (int i = 1; i < numRows; i++) {
            for (int j = 1; j <= i; j++) {
                triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
            }
        }

        // 输出帕斯卡三角形
        for (int i = 0; i < numRows; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(triangle[i][j] + " ");
            }
            System.out.println();
        }
    }
}
代码说明
初始化三角形数组

首先定义一个二维数组 triangle 存储生成的帕斯卡三角形,然后根据打印行数 numRows 初始化第一列的数值为1。

int numRows = 10; // 打印的行数
int[][] triangle = new int[numRows][numRows];

// 初始化第一列为1
for (int i = 0; i < numRows; i++) {
    triangle[i][0] = 1;
}
计算数值

接下来使用递推公式计算每个数值,公式为:triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]。其中,i 表示行数,j 表示列数,triangle[i][j] 表示第 i 行第 j 列的数值,triangle[i-1][j-1]triangle[i-1][j] 分别表示上一行的左上角和右上角的数值。

for (int i = 1; i < numRows; i++) {
    for (int j = 1; j <= i; j++) {
        triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
    }
}
输出结果

最后,使用嵌套循环输出生成的帕斯卡三角形。外层循环控制行数,内层循环控制每行输出的数值。使用 System.out.print 方法输出每个数值,使用 System.out.println 方法在每行末尾输出一个换行符,使输出结果形成一个三角形。

for (int i = 0; i < numRows; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(triangle[i][j] + " ");
    }
    System.out.println();
}
运行结果

程序运行结果如下所示,输出了一个包含10行数字的帕斯卡三角形:

1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 
1 6 15 20 15 6 1 
1 7 21 35 35 21 7 1 
1 8 28 56 70 56 28 8 1 
1 9 36 84 126 126 84 36 9 1 
总结

通过以上示例,我们可以看出打印帕斯卡三角形的程序主要是通过一个二维数组和递推公式来计算每个数值,然后再循环输出这个三角形。这个程序在学习Java语言过程中是一个较为基础且常见的编程问题,掌握这个问题对其他编程问题的解决也有助益。