21xrx.com
2024-12-22 21:34:27 Sunday
登录
文章检索 我的文章 写文章
C++中如何输出杨辉三角形
2023-07-12 12:34:39 深夜i     --     --
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

评论区

{{item['qq_nickname']}}
()
回复
回复