输出样例如图所示:

代码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
const int rows = 10;
int triangle[rows][rows];
// 初始化杨辉三角形的边界元素为 1
for (int i = 0; i < rows; ++i) {
triangle[i][0] = 1;
triangle[i][i] = 1;
}
// 计算杨辉三角形内部元素
for (int i = 2; i < rows; ++i) {
for (int j = 1; j < i; ++j) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
// 打印杨辉三角形
for (int i = 0; i < rows; ++i) {
// 打印空格,用于对齐,形成等腰三角形的效果
for (int k = 0; k < (rows - i); ++k) {
cout << " ";
}
for (int j = 0; j <= i; ++j) {
// 使用 setw 控制输出宽度,使数字对齐
cout << setw(6) << triangle[i][j];
}
cout << endl;
}
return 0;
}
代码解释如下:
- 头文件和命名空间:
#include <iomanip>:引入输入输出操作符的格式化库,这里使用setw函数来设置输出宽度。- 变量和数组声明:
const int rows = 10;:定义一个常量rows表示杨辉三角形的行数,这里设置为 10。int triangle[rows][rows];:声明一个rows x rows的二维整型数组triangle来存储杨辉三角形的元素。- 初始化边界元素:
for (int i = 0; i < rows; ++i) {... }:这个循环用于初始化杨辉三角形的边界元素。
triangle[i][0] = 1;:将每一行的第一个元素(最左边的元素)设置为 1。triangle[i][i] = 1;:将每一行的最后一个元素(对角线上的元素)设置为 1,因为杨辉三角形的边界元素都为 1。- 计算内部元素:
for (int i = 2; i < rows; ++i) {... }:从第 2 行开始计算杨辉三角形的内部元素,因为第 0 行和第 1 行的元素已经在边界元素初始化中完成。
for (int j = 1; j < i; ++j) {... }:对于第i行,从第 1 列到第i-1列进行遍历。triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];:根据杨辉三角形的性质,第i行第j列的元素等于上一行(第i-1行)第j-1列和第j列元素的和。- 打印杨辉三角形:
for (int i = 0; i < rows; ++i) {... }:遍历每一行。for (int k = 0; k < (rows - i); ++k) {... }:打印空格,用于使输出的杨辉三角形呈现等腰三角形的形状。空格数量根据当前行数i确定,行数越大,空格越少。for (int j = 0; j <= i; ++j) {... }:遍历第i行的元素。cout << setw(6) << triangle[i][j];:使用setw(6)控制每个元素的输出宽度为 6 个字符,确保数字对齐。cout << endl;:输出换行符,将下一行的元素打印到新的一行。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ

1万+

被折叠的 条评论
为什么被折叠?



