溫馨提示×

C++楊輝三角形如何高效實(shí)現(xiàn)

c++
小樊
117
2024-07-05 19:06:21
欄目: 編程語言

以下是用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)遍歷輸出每一行的元素,完成了整個楊輝三角形的打印。

0