杨辉三角的每行第i个数是由上一行的第i-1个数和第i个数相加得到的,且每行的第一个数和最后一个数都是1,每行的中间个数等于它两肩上的数字相加。
目录
- C++代码
- 输出结果
- 8行输出
- 15行输出
- 25行输出
C++代码
#include <iostream>
#include <vector>
// 定义函数生成杨辉三角
std::vector<std::vector<int>> generatePascalTriangle(int numRows) {
std::vector<std::vector<int>> pascalTriangle;
// 初始化第一行
std::vector<int> firstRow{ 1 };
pascalTriangle.push_back(firstRow);
// 依次添加后续行
for (int i = 1; i < numRows; i++) {
std::vector<int> newRow{ 1 }; // 每一行的第一个元素为1
// 计算当前行中每个元素的值
for (int j = 1; j < i; j++) {
newRow.push_back(pascalTriangle[i - 1][j - 1] + pascalTriangle[i - 1][j]);
}
newRow.push_back(1); // 每一行的最后一个元素为1
pascalTriangle.push_back(newRow);
}
return pascalTriangle;
}
int main() {
int numRows;
std::cout << "请输入杨辉三角的行数: ";
std::cin >> numRows;
std::vector<std::vector<int>> pascalTriangle = generatePascalTriangle(numRows);
// 打印杨辉三角
for (int i = 0; i < pascalTriangle.size(); i++) {
for (int j = 0; j <= i; j++) {
std::cout << pascalTriangle[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}