1050: 【入门】杨辉三角形
时间限制: 1.000 Sec 内存限制: 64 MB
提交: 15174 解决: 8564
[命题人:][下载数据: 30]
题目描述
输出杨辉三角的前N行(N<10)。
输入
输入只有一行,包括1个整数N。(N<10)
输出
输出只有N行。
第N行有N个整数,用一个空格隔开。
样例
输入 复制
5
输出 复制
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> generate(int numRows) {
vector<vector<int>> triangle(numRows);
for (int i = 0; i < numRows; i++) {
triangle[i].resize(i+1);
triangle[i][0] = triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
return triangle;
}
int main() {
int numRows = 5;
vector<vector<int>> triangle = generate(numRows);
for (int i = 0; i < triangle.size(); i++) {
for (int j = 0; j < triangle[i].size(); j++) {
cout << triangle[i][j] << " ";
}
cout << endl;
}
return 0;
}
题目是要输入行数,而不是自己设置:
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> generate(int numRows)
{
vector<vector<int>> triangle(numRows);
for (int i = 0; i < numRows; i++)
{
triangle[i].resize(i + 1);
triangle[i][0] = triangle[i][i] = 1;
for (int j = 1; j < i; j++)
{
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
return triangle;
}
int main()
{
int numRows;
cin >> numRows;
vector<vector<int>> triangle = generate(numRows);
for (int i = 0; i < triangle.size(); i++)
{
for (int j = 0; j < triangle[i].size(); j++)
{
cout << triangle[i][j] << " ";
}
cout << endl;
}
return 0;
}
有什么问题嘛