五、杨辉三角
杨辉三角是一个在数学中经常出现的二维数列,也被称为帕斯卡三角形。每一行的第一个和最后一个数都是1,中间的数是上一行相邻两数之和。下面是一个使用C++实现打印杨辉三角的简单示例:
#include <iostream>
#include <vector>
using namespace std;
// 函数用于打印杨辉三角
void printPascalTriangle(int numRows) {
vector<vector<int>> triangle(numRows);
// 初始化每一行的第一个元素为1
for (int i = 0; i < numRows; ++i) {
triangle[i].push_back(1);
// 从第二个元素开始,每个元素都是上一行相邻两个元素之和
for (int j = 1; j < i; ++j) {
triangle[i].push_back(triangle[i - 1][j - 1] + triangle[i - 1][j]);
}
// 如果不是第一行,则在末尾添加一个1
if (i > 0) {
triangle[i].push_back(1);
}
}
// 打印杨辉三角
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j <= i; ++j) {
cout << triangle[i][j] << " ";
}
cout << endl;
}
}
int main() {
int numRows;
cout << "请输入杨辉三角的行数: ";
cin >> numRows;
printPascalTriangle(numRows);
return 0;
}
在这个程序中,我们首先定义了一个二维向量triangle
来存储杨辉三角的每一行。然后,我们使用两个嵌套的循环来填充这个二维向量。外层循环遍历每一行,内层循环计算并填充当前行的元素。最后,我们遍历整个二维向量,并将其内容打印到控制台上。
当您运行此程序并输入行数时,它会输出对应行数的杨辉三角。例如,如果您输入5,它将打印出5行的杨辉三角。
请注意,这个实现假设用户输入的行数是一个非负整数。在实际应用中,您可能还需要添加错误检查来确保输入的有效性。