21xrx.com
2024-11-22 06:59:48 Friday
登录
文章检索 我的文章 写文章
C++编程实现杨辉三角
2023-07-13 05:27:58 深夜i     --     --
C++编程 杨辉三角 数组 循环 输出

杨辉三角是一种非常有趣的数字三角形,它每行的数字是由上一行相邻两个数字相加而得。它的形式如下:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

......

杨辉三角是数学中的经典问题,也是编程中非常典型的问题。在本文中,我们将介绍如何使用C++编程实现杨辉三角。

首先,我们需要定义一个二维数组,用于存储杨辉三角的数字。我们可以使用vector容器或者数组来实现。为了方便,我们可以选择vector容器。

如下是定义vector容器的方法:

vector > triangle;

其次,我们需要输入杨辉三角的行数。输入行数后,我们就可以使用循环逐行计算杨辉三角的数字,并将其存储到vector容器中。

for (int i = 0; i < numRows; ++i) {

  triangle.push_back(vector (i + 1, 1));

  for (int j = 1; j < i; ++j) {

    triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];

  }

}

在以上代码中,我们首先使用push_back()函数将当前行的vector容器添加到triangle容器中。然后,我们使用嵌套的循环计算当前行的数字,将其存储到vector容器中。

最后,我们可以使用循环遍历二维vector容器,输出杨辉三角中的所有数字。

for (int i = 0; i < numRows; ++i) {

  for (int j = 0; j <= i; ++j) {

    cout << triangle[i][j] << " ";

  }

  cout << endl;

}

完整代码如下:

#include

#include

using namespace std;

int main() {

  int numRows;

  // 输入杨辉三角的行数

  cout << "Enter the number of rows in Pascal's triangle: ";

  cin >> numRows;

  // 定义二维vector容器

  vector > triangle;

  // 计算杨辉三角的数字,并将其存储到vector容器中

  for (int i = 0; i < numRows; ++i) {

    triangle.push_back(vector (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) {

      cout << triangle[i][j] << " ";

    }

    cout << endl;

  }

  return 0;

}

在运行上述代码后,可以得到如下输出:

Enter the number of rows in Pascal's triangle: 5

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

通过上述代码示例,我们可以学习到如何使用C++编程实现杨辉三角问题。当然,我们也可以使用其他语言如Python、Java等实现这个问题。总之,在编程中不断地挑战各种经典问题,不断学习和实践,才能不断地提高自己的编程能力。

  
  

评论区

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