#include <iostream>
#include <vector>
using namespace std;
// 函数用于生成杨辉三角的前 numRows 行
vector<vector<int>> generatePascalsTriangle(int numRows) {
vector<vector<int>> triangle;
// 如果 numRows 为 0,直接返回空的二维向量
if (numRows == 0) {
return triangle;
}
// 第一行总是 [1]
triangle.push_back({1});
// 从第二行开始生成
for (int i = 1; i < numRows; ++i) {
vector<int> row;
vector<int> prevRow = triangle[i - 1];
// 每行的第一个元素总是 1
row.push_back(1);
// 中间的元素是上一行相邻两个元素之和
for (int j = 1; j < i; ++j) {
row.push_back(prevRow[j - 1] + prevRow[j]);
}
// 每行的最后一个元素总是 1
row.push_back(1);
// 将生成的行添加到三角形中
triangle.push_back(row);
}
return triangle;
}
// 打印杨辉三角
void printPascalsTriangle(const vector<vector<int>>& triangle) {
for (const auto& row : triangle) {
for (int num : row) {
cout << num << " ";
}
cout << endl;
}
}
int main() {
int numRows;
cout << "请输入要生成的杨辉三角的行数: ";
cin >> numRows;
vector<vector<int>> pascalsTriangle = generatePascalsTriangle(numRows);
printPascalsTriangle(pascalsTriangle);
return 0;
}
triangle 来存储每一行的结果。main 函数中,用户可以输入想要生成的杨辉三角的行数,程序会根据输入生成并打印相应的杨辉三角。希望这段代码对你有帮助!
上一篇:c++ 树
下一篇:c++ exception报错
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站