【详解】使用Java解决 - 打印出杨辉三角形

举报
皮牙子抓饭 发表于 2026/03/16 20:49:47 2026/03/16
【摘要】 使用Java解决 - 打印出杨辉三角形前言杨辉三角形是一个非常经典的数学图形,它在组合数学中有着重要的地位。每个数是它左上方和右上方的数的和(除了边界上的数)。本文将通过Java语言实现一个简单的程序来打印出10行的杨辉三角形。杨辉三角形的定义杨辉三角形的特点:每一行的第一个和最后一个数字都是1。从第三行开始,每个数字等于上一行的两个相邻数字之和。实现思路创建一个二维数组来存储杨辉三角形的值...

使用Java解决 - 打印出杨辉三角形

前言

杨辉三角形是一个非常经典的数学图形,它在组合数学中有着重要的地位。每个数是它左上方和右上方的数的和(除了边界上的数)。本文将通过Java语言实现一个简单的程序来打印出10行的杨辉三角形。

杨辉三角形的定义

杨辉三角形的特点:

  • 每一行的第一个和最后一个数字都是1。
  • 从第三行开始,每个数字等于上一行的两个相邻数字之和。

实现思路

  1. 创建一个二维数组来存储杨辉三角形的值。
  2. 初始化第一列和对角线上的元素为1。
  3. 根据杨辉三角形的规则填充其他位置的值。
  4. 打印二维数组中的值,形成杨辉三角形。

Java代码实现

public class YangHuiTriangle {
    public static void main(String[] args) {
        int numRows = 10; // 定义杨辉三角形的行数
        printYangHuiTriangle(numRows);
    }

    public static void printYangHuiTriangle(int numRows) {
        int[][] triangle = new int[numRows][numRows];

        // 填充杨辉三角形
        for (int i = 0; i < numRows; i++) {
            triangle[i][0] = 1; // 每一行的第一个元素
            triangle[i][i] = 1; // 每一行的最后一个元素
            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();
        }
    }
}

运行结果

运行上述Java程序,将得到以下输出:

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编写的示例代码,用于打印出10行的杨辉三角形:

public class YangHuiTriangle {
    public static void main(String[] args) {
        int rows = 10; // 打印10行
        printYangHuiTriangle(rows);
    }

    public static void printYangHuiTriangle(int rows) {
        // 创建一个二维数组来存储杨辉三角形的值
        int[][] triangle = new int[rows][rows];

        // 填充杨辉三角形的值
        for (int i = 0; i < rows; i++) {
            triangle[i][0] = 1; // 每一行的第一个元素为1
            triangle[i][i] = 1; // 每一行的最后一个元素为1

            // 计算中间的值
            for (int j = 1; j < i; j++) {
                triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
            }
        }

        // 打印杨辉三角形
        for (int i = 0; i < rows; i++) {
            // 打印空格以对齐三角形
            for (int k = 0; k < rows - i - 1; k++) {
                System.out.print("   ");
            }

            for (int j = 0; j <= i; j++) {
                System.out.printf("%5d", triangle[i][j]);
            }
            System.out.println();
        }
    }
}

代码解释:

  1. 定义主类和主方法:​​YangHuiTriangle​​ 类包含 ​​main​​ 方法,作为程序的入口。
  2. 定义打印方法:​​printYangHuiTriangle​​ 方法用于生成并打印杨辉三角形。
  3. 创建二维数组:​​triangle​​ 数组用于存储杨辉三角形的值。
  4. 填充数组
  • 每一行的第一个和最后一个元素设置为1。
  • 中间的元素通过上一行的相邻两个元素相加得到。
  1. 打印数组
  • 使用嵌套循环打印杨辉三角形。
  • 外层循环控制行数,内层循环控制每行的元素。
  • 打印前的空格用于对齐三角形。

运行上述代码后,你将看到如下输出:

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来实现打印10行的杨辉三角形。

1. 理解杨辉三角形的结构

杨辉三角形的特点:

  • 第n行有n个数字。
  • 每一行的第一个和最后一个数字都是1。
  • 从第3行开始,每个数字等于它上方两个数字之和。

2. Java代码实现

public class YangHuiTriangle {
    public static void main(String[] args) {
        int numRows = 10; // 打印10行
        printYangHuiTriangle(numRows);
    }

    public static void printYangHuiTriangle(int numRows) {
        // 创建一个二维数组来存储杨辉三角形的值
        int[][] triangle = new int[numRows][numRows];

        // 填充杨辉三角形的值
        for (int i = 0; i < numRows; i++) {
            triangle[i][0] = 1; // 每一行的第一个元素是1
            triangle[i][i] = 1; // 每一行的最后一个元素是1

            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();
        }
    }
}

3. 代码解释

  1. 定义主类和主方法
public class YangHuiTriangle {
    public static void main(String[] args) {
        int numRows = 10; // 打印10行
        printYangHuiTriangle(numRows);
    }
}

这里定义了一个主类 ​​YangHuiTriangle​​ 和主方法 ​​main​​,在主方法中调用了 ​​printYangHuiTriangle​​ 方法来打印10行的杨辉三角形。

  1. 创建二维数组并填充杨辉三角形的值
public static void printYangHuiTriangle(int numRows) {
    int[][] triangle = new int[numRows][numRows];

    for (int i = 0; i < numRows; i++) {
        triangle[i][0] = 1; // 每一行的第一个元素是1
        triangle[i][i] = 1; // 每一行的最后一个元素是1

        for (int j = 1; j < i; j++) {
            triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }
    }
}
  • 创建一个 ​​numRows x numRows​​ 的二维数组 ​​triangle​​ 来存储杨辉三角形的值。
  • 使用两层循环来填充数组:
  • 外层循环 ​​i​​ 遍历每一行。
  • 内层循环 ​​j​​ 遍历每一行的每一个元素。
  • 每一行的第一个和最后一个元素设置为1。
  • 其他元素的值等于它上方两个元素之和。
  1. 打印杨辉三角形
for (int i = 0; i < numRows; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(triangle[i][j] + " ");
    }
    System.out.println();
}
  • 使用两层循环来打印二维数组中的值。
  • 外层循环 ​​i​​ 遍历每一行。
  • 内层循环 ​​j​​ 遍历每一行的每一个元素,并打印出来。
  • 每打印完一行后,换行。

4. 运行结果

运行上述代码,你将得到以下输出:

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打印10行杨辉三角形的完整代码和解释。希望对你有所帮助!如果有任何问题或需要进一步的解释,请随时告诉我。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。