以下是用C++實(shí)現(xiàn)楊輝三角形的高效方法:
#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來存儲楊輝三角形中的元素,并且在生成每一行時只需要參考上一行的元素,從而實(shí)現(xiàn)了高效的計算。同時,該代碼也避免了重復(fù)計算,提高了效率。最后,通過循環(huán)遍歷輸出每一行的元素,完成了整個楊輝三角形的打印。