以下是用C++实现杨辉三角形的高效方法:
#include <iostream>
#include <vector>
std::vector<std::vector<int>> generateYanghuiTriangle(int numRows) {
std::vector<std::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;
std::vector<std::vector<int>> triangle = generateYanghuiTriangle(numRows);
for (int i = 0; i < numRows; i++) {
for (int j = 0; j <= i; j++) {
std::cout << triangle[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
这段代码使用了一个二维vector来存储杨辉三角形中的元素,并且在生成每一行时只需要参考上一行的元素,从而实现了高效的计算。同时,该代码也避免了重复计算,提高了效率。最后,通过循环遍历输出每一行的元素,完成了整个杨辉三角形的打印。