杨辉三角的每行第i个数是由上一行的第i-1个数和第i个数相加得到的,且每行的第一个数和最后一个数都是1,每行的中间个数等于它两肩上的数字相加。
C++代码
#include <iostream>
#include <vector>
// 定义函数生成杨辉三角
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行输出
15行输出
25行输出
原文地址:https://blog.csdn.net/qq_22734027/article/details/134666084
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_7653.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。