【C++】杨辉三角详解和C++代码示例

杨辉三角的每行第i个数是由上一行的第i-1个数和第i个数相加得到的,且每行的第一个数和最后一个数都是1,每行的中间个数等于它两肩上的数字相加。

目录

  • C++代码
  • 输出结果
    • 8行输出
    • 15行输出
    • 25行输出

C++代码

#include 
#include 

// 定义函数生成杨辉三角
std::vector<std::vector<int>> generatePascalTriangle(int numRows) {
    std::vector<std::vector<int>> pascalTriangle;

    // 初始化第一行
    std::vector<int> firstRow{ 1 };
    pascalTriangle.push_back(firstRow);

    // 依次添加后续行
    for (int i = 1; i < numRows; i++) {
        std::vector<int> newRow{ 1 }; // 每一行的第一个元素为1

        // 计算当前行中每个元素的值
        for (int j = 1; j < i; j++) {
            newRow.push_back(pascalTriangle[i - 1][j - 1] + pascalTriangle[i - 1][j]);
        }

        newRow.push_back(1); // 每一行的最后一个元素为1
        pascalTriangle.push_back(newRow);
    }

    return pascalTriangle;
}

int main() {
    int numRows;
    std::cout << "请输入杨辉三角的行数: ";
    std::cin >> numRows;

    std::vector<std::vector<int>> pascalTriangle = generatePascalTriangle(numRows);

    // 打印杨辉三角
    for (int i = 0; i < pascalTriangle.size(); i++) {
        for (int j = 0; j <= i; j++) {
            std::cout << pascalTriangle[i][j] << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

输出结果

8行输出

【C++】杨辉三角详解和C++代码示例_第1张图片

15行输出

【C++】杨辉三角详解和C++代码示例_第2张图片

25行输出

【C++】杨辉三角详解和C++代码示例_第3张图片

你可能感兴趣的:(C,C++日常记录,c++,算法,开发语言)