#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> generatePascalsTriangle(int numRows) {
vector<vector<int>> triangle;
if (numRows == 0) {
return triangle;
}
// 第一行总是 [1]
triangle.push_back({1});
for (int i = 1; i < numRows; ++i) {
vector<int> row;
row.push_back(1); // 每行的第一个元素总是 1
for (int j = 1; j < i; ++j) {
// 中间元素是上一行相邻两个元素的和
row.push_back(triangle[i - 1][j - 1] + triangle[i - 1][j]);
}
row.push_back(1); // 每行的最后一个元素总是 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;
}
generatePascalsTriangle 函数:
numRows 为 0,则返回一个空的二维向量。[1],因此直接将其添加到结果中。1,中间的元素是上一行相邻两个元素的和。printPascalsTriangle 函数:
main 函数:
generatePascalsTriangle 生成杨辉三角,并调用 printPascalsTriangle 打印结果。这个程序可以生成并打印指定行数的杨辉三角。
上一篇:c++ for_each
下一篇:c++ string拼接
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站