//题目:
//给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
//
//在杨辉三角中,每个数是它左上方和右上方的数的和。
//
//问题函数定义:
//
//cpp
//vector<vector<int>> generate(int numRows);
//裁判测试程序样例:
//
//cpp
#include <iostream>
#include <vector>
using namespace std;
// 请在这里实现 generate 函数
vector<vector<int>> generate(int numRows) {
vector<vector<int>> m(numRows);
for (int i = 0; i < numRows; ++i)
{
m[i].resize(i + 1);
m[i][0] = 1;
m[i][i] = 1;
for (int j = 1; j < i; ++j)
{
m[i][j] = m[i - 1][j] + m[i - 1][j - 1];
}
}
return m;
}
// 打印二维向量
void printVector(vector<vector<int>>& vec) {
for (auto& row : vec) {
for (int num : row) {
cout << num << " ";
}
cout << endl;
}
}
int main() {
int numRows = 5;
vector<vector<int>> result = generate(numRows);
cout << "杨辉三角的前 " << numRows << " 行:" << endl;
printVector(result);
return 0;
}
//输出样例:
//
//杨辉三角的前 5 行:
//1
//1 1
//1 2 1
//1 3 3 1
//1 4 6 4 1