用c++写个杨辉三角
时间: 2024-12-17 21:04:39 浏览: 1
杨辉三角的循环输出 C++实现-杨辉三角c++
在C++中,我们可以使用循环和递归来生成并输出杨辉三角。这里有两个示例:
1. **基于二维数组的传统实现**[^1]:
```cpp
#include <iostream>
using namespace std;
void printPascalTriangle(int n) {
int triangle[n][n];
for (int line = 0; line < n; ++line) {
// 初始化第一列和最后一列的值
triangle[line][0] = triangle[line][line] = 1;
for (int i = 1; i < line; ++i) {
triangle[line][i] = triangle[line - 1][i - 1] + triangle[line - 1][i];
}
// 打印当前行
for (int i = 0; i <= line; ++i) {
cout << triangle[line][i] << " ";
}
cout << endl;
}
}
int main() {
int rows = 5; // 指定输出行数
printPascalTriangle(rows);
return 0;
}
```
2. **使用`std::vector`的现代实现**[^2](注意,这种方法不直接形成三角形,但展示了如何动态添加元素):
```cpp
#include <iostream>
#include <vector>
using namespace std;
void generateAndPrint(vector<vector<int>>& triangle, int n) {
triangle.resize(n, vector<int>(n, 0));
triangle[0][0] = 1;
for (int row = 1; row < n; ++row) {
for (int col = 0; col <= row; ++col) {
if (col > 0)
triangle[row][col] = triangle[row - 1][col - 1] + triangle[row - 1][col];
else
triangle[row][col] = triangle[row - 1][col];
cout << triangle[row][col] << " ";
}
cout << endl;
}
}
int main() {
int rows = 5;
vector<vector<int>> pascal_triangle(rows);
generateAndPrint(pascal_triangle, rows);
return 0;
}
```
阅读全文