使用 C++ 编写程序打印杨辉三角

本文将详细介绍如何使用 C++ 代码生成并打印一个十一行的杨辉三角。

代码示例:

#include <iostream>
#include <vector>

// 生成杨辉三角
std::vector<std::vector<int>> generatePascalTriangle(int numRows) {
    std::vector<std::vector<int>> triangle;
    
    if (numRows == 0)
        return triangle;
    
    triangle.push_back({1});
    
    for (int i = 1; i < numRows; i++) {
        std::vector<int> row(i + 1, 1);
        for (int j = 1; j < i; j++) {
            row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }
        triangle.push_back(row);
    }
    
    return triangle;
}

// 打印杨辉三角
void printPascalTriangle(const std::vector<std::vector<int>>& triangle) {
    int numRows = triangle.size();
    for (int i = 0; i < numRows; i++) {
        int numSpaces = numRows - i - 1;
        for (int j = 0; j < numSpaces; j++) {
            std::cout << ' ';
        }
        for (int j = 0; j <= i; j++) {
            std::cout << triangle[i][j] << ' ';
        }
        std::cout << std::endl;
    }
}

int main() {
    int numRows = 11; // 打印 11 行杨辉三角
    
    std::vector<std::vector<int>> triangle = generatePascalTriangle(numRows);
    
    printPascalTriangle(triangle);
    
    return 0;
}

代码解析:

  1. 生成杨辉三角:

    • generatePascalTriangle 函数接收一个整数 numRows,代表要生成的杨辉三角的行数。
    • 函数首先创建一个空二维向量 triangle 用于存储杨辉三角。
    • 如果 numRows 为 0,则直接返回空 triangle
    • 初始化第一行 triangle.push_back({1});,因为杨辉三角的第一行只有一个数字 1。
    • 循环遍历后续行,使用 row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; 计算每一行元素的值,该元素等于上一行对应位置的两个元素之和。
    • 最后,返回生成的 triangle
  2. 打印杨辉三角:

    • printPascalTriangle 函数接收一个二维向量 triangle,代表要打印的杨辉三角。
    • 循环遍历 triangle 的每一行,计算每行前需要添加的空格数 numSpaces = numRows - i - 1,并打印空格。
    • 循环打印每一行元素,用空格隔开。
    • 最后,打印一个换行符 std::endl
  3. 主函数:

    • 在主函数 main 中,设置 numRows 为 11,表示要打印 11 行杨辉三角。
    • 调用 generatePascalTriangle 生成杨辉三角,并调用 printPascalTriangle 打印结果。

保存代码:

您可以将以上代码保存到一个名为 pascal_triangle.cpp 的文件中。

编译和运行:

使用 C++ 编译器编译并运行该文件,即可打印出一个十一行的杨辉三角。

代码分析:

  • 代码使用二维向量 std::vector<std::vector<int>> 存储杨辉三角,方便进行元素访问和操作。
  • 使用循环和条件语句来控制程序的逻辑流程,实现杨辉三角的生成和打印功能。
  • 代码注释清晰,方便理解代码的逻辑和功能。

更多功能:

您可以根据需要修改代码,实现更多功能,例如:

  • 输入任意行数,打印任意行数的杨辉三角。
  • 修改打印格式,例如添加边框或修改元素间距。
  • 计算杨辉三角的特定元素值。

希望本文能够帮助您理解如何使用 C++ 代码生成和打印杨辉三角,并激发您探索更多 C++ 编程的乐趣!

C++ 代码实现杨辉三角:详细解析及示例

原文地址: https://www.cveoy.top/t/topic/bDWj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录