C++实例教程之C++经典案例

五、杨辉三角

杨辉三角是一个在数学中经常出现的二维数列,也被称为帕斯卡三角形。每一行的第一个和最后一个数都是1,中间的数是上一行相邻两数之和。下面是一个使用C++实现打印杨辉三角的简单示例:

#include <iostream>  
#include <vector>  
  
using namespace std;  
  
// 函数用于打印杨辉三角  
void printPascalTriangle(int numRows) {  
    vector<vector<int>> triangle(numRows);  
  
    // 初始化每一行的第一个元素为1  
    for (int i = 0; i < numRows; ++i) {  
        triangle[i].push_back(1);  
  
        // 从第二个元素开始,每个元素都是上一行相邻两个元素之和  
        for (int j = 1; j < i; ++j) {  
            triangle[i].push_back(triangle[i - 1][j - 1] + triangle[i - 1][j]);  
        }  
  
        // 如果不是第一行,则在末尾添加一个1  
        if (i > 0) {  
            triangle[i].push_back(1);  
        }  
    }  
  
    // 打印杨辉三角  
    for (int i = 0; i < numRows; ++i) {  
        for (int j = 0; j <= i; ++j) {  
            cout << triangle[i][j] << " ";  
        }  
        cout << endl;  
    }  
}  
  
int main() {  
    int numRows;  
    cout << "请输入杨辉三角的行数: ";  
    cin >> numRows;  
    printPascalTriangle(numRows);  
    return 0;  
}

在这个程序中,我们首先定义了一个二维向量triangle来存储杨辉三角的每一行。然后,我们使用两个嵌套的循环来填充这个二维向量。外层循环遍历每一行,内层循环计算并填充当前行的元素。最后,我们遍历整个二维向量,并将其内容打印到控制台上。

当您运行此程序并输入行数时,它会输出对应行数的杨辉三角。例如,如果您输入5,它将打印出5行的杨辉三角。

请注意,这个实现假设用户输入的行数是一个非负整数。在实际应用中,您可能还需要添加错误检查来确保输入的有效性。

0.053286s