21xrx.com
2025-03-27 23:39:31 Thursday
文章检索 我的文章 写文章
C++如何输出杨辉三角
2023-07-10 07:27:22 深夜i     12     0
C++ 输出 杨辉三角

杨辉三角是中国古代数学的一个经典问题,也是现代计算机科学中经常使用的算法之一。它是一种有趣的数学模式,其中每个数字都等于上一行中相邻两个数字之和。在C++中,使用循环和条件语句可以轻松实现杨辉三角的输出。

首先,我们需要定义一个变量,指定杨辉三角的行数。假设我们要输出10行的杨辉三角,可以定义如下变量:

int numRows = 10;

接下来,我们需要使用循环嵌套来生成每一行的数字。外部循环控制行数,内部循环控制每一行的数字。我们可以使用一个二维数组来存储杨辉三角中的数字,代码如下:

int pascalTriangle[numRows][numRows];
for(int i = 0; i < numRows; i++){
  for(int j = 0; j <= i; j++){
    if(j == 0 || i == j){
      pascalTriangle[i][j] = 1;
    }else{
      pascalTriangle[i][j] = pascalTriangle[i-1][j-1] + pascalTriangle[i-1][j];
    }
  }
}

在上述代码中,我们使用if-else条件语句来判断每行的首尾数字是否等于1,以及中间数字的值。在内层循环中,我们还使用了pascalTriangle数组中上一行的相邻两个数字之和的方式来计算当前行中每个数字的值。

最后,我们可以使用另一个循环来输出每一行的数字,并将它们以杨辉三角的形式呈现出来。代码如下:

for(int i = 0; i < numRows; i++){
  std::cout << std::string(numRows-i-1, ' ');
  for(int j = 0; j <= i; j++){
    std::cout << pascalTriangle[i][j] << " ";
  }
  std::cout << std::endl;
}

在上述代码中,我们使用了C++中的std命名空间和cout输出流来打印杨辉三角。同时,我们还使用了std::string函数生成空格字符串,使得数字之间的间距合适。

在执行上述代码后,我们可以看到以下结果:

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

以上就是通过C++输出杨辉三角的详细步骤。使用循环和条件语句可以轻松实现这个经典问题,让我们更好地理解和掌握计算机科学中的算法。

  
  

评论区