温馨提示×

C++杨辉三角形如何高效实现

c++
小樊
115
2024-07-05 19:06:21
栏目: 编程语言

以下是用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来存储杨辉三角形中的元素,并且在生成每一行时只需要参考上一行的元素,从而实现了高效的计算。同时,该代码也避免了重复计算,提高了效率。最后,通过循环遍历输出每一行的元素,完成了整个杨辉三角形的打印。

0