21xrx.com
2025-04-28 13:43:54 Monday
文章检索 我的文章 写文章
C++中如何输出杨辉三角形
2023-07-12 12:34:39 深夜i     25     0
C++ 输出 杨辉三角形

杨辉三角形是一种很有趣的图形,它是由每个数字等于其上方两数之和的一系列数字构成的三角形。在C++中,我们可以使用循环和数组来输出杨辉三角形。

首先,我们需要定义一个二维数组来存储杨辉三角形中的数字。我们可以使用嵌套循环来依次计算每个数字,并将其存储在数组中。下面是一个示例代码:

const int rows = 10// 定义三角形的行数
int pascal[rows][rows] = {0}; // 定义一个二维数组来存储数字
for (int i = 0; i < rows; i++) {
  pascal[i][0] = 1// 每行第一个数字为1
  for (int j = 1; j <= i; j++) {
    pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];  // 计算当前数字
  }
}

接下来,我们可以使用另一个嵌套循环来输出杨辉三角形。在内层循环中,我们可以使用条件语句来判断当前位置是否为0,如果是,则输出一个空格,否则输出当前位置对应的数字。下面是一个示例代码:

for (int i = 0; i < rows; i++) {
  for (int j = 0; j < rows-i; j++) {
    std::cout << " "// 输出空格
  }
  for (int j = 0; j <= i; j++) {
    if (pascal[i][j] != 0) {  // 判断当前位置是否为0
      std::cout << pascal[i][j] << " "// 输出数字和空格
    }
  }
  std::cout << std::endl;  // 换行
}

上述代码中,我们使用了 `std::cout` 来输出数字和空格,并使用 `std::endl` 来换行。

最后,我们可以将上述代码整合到一个函数中,并使用 `main()` 函数来测试输出结果。下面是一个完整的示例代码:

#include <iostream>
const int rows = 10;
void print_pascal_triangle()
{
  int pascal[rows][rows] = {0}; // 定义一个二维数组来存储数字
  for (int i = 0; i < rows; i++) {
    pascal[i][0] = 1// 每行第一个数字为1
    for (int j = 1; j <= i; j++) {
      pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];  // 计算当前数字
    }
  }
  for (int i = 0; i < rows; i++) {
    for (int j = 0; j < rows-i; j++) {
      std::cout << " "// 输出空格
    }
    for (int j = 0; j <= i; j++) {
      if (pascal[i][j] != 0) {  // 判断当前位置是否为0
        std::cout << pascal[i][j] << " "// 输出数字和空格
      }
    }
    std::cout << std::endl;  // 换行
  }
}
int main()
{
  print_pascal_triangle();
  return 0;
}

运行上述代码,我们可以在终端中看到如下输出结果:

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
1 10 45 120 210 252 210 120 45 10 1

可以看到,上述代码成功地输出了一个具有10行的杨辉三角形。在实际开发中,我们可以根据需要调整行数,从而输出不同大小的三角形。

  
  
下一篇: 用Node.js编写IDE

评论区