输出杨辉三角的前n行数据,每个数据占4列。C++
时间: 2024-12-21 08:24:15 浏览: 51
杨辉三角是一个数学术语,表示在一个矩形网格上,从左上角到右下角的路径中,可以选择走上方格或者下方格,形成的一种规律性的三角形数阵。在C++中,我们可以使用动态规划的方式来输出杨辉三角的前n行。以下是一个简单的程序示例:
```cpp
#include <iostream>
using namespace std;
void printPascalTriangle(int n) {
for (int line = 0; line < n; line++) {
// 每一行的数字由上一行的相邻两个元素相加得到
for (int i = 0; i <= line; i++) {
cout << padZero(line - i, 4); // 使用padZero函数将数字左对齐并填充0
if (i == 0 || i == line) { // 首位和末位保持1,其余用数字填充
cout << "1";
} else {
cout << Pascal_triangle[line][i];
}
cout << " ";
}
cout << endl;
}
}
// 辅助函数,计算给定位置的杨辉三角值
int Pascal_triangle[100][100] = { {1} };
int getBinomialCoeff(int row, int col) {
return row > col ? Pascal_triangle[row - 1][col - 1] : Pascal_triangle[row][col];
}
// 左对齐并填充0的辅助函数
string padZero(int num, int width) {
string str = to_string(num);
while (str.length() < width) {
str = '0' + str;
}
return str;
}
int main() {
int n = 5; // 输出前5行
printPascalTriangle(n);
return 0;
}
```
在这个代码中,我们首先初始化了杨辉三角的第一行(只有一个1),然后遍历每一行,根据杨辉三角的递推公式计算出每个位置的数字,并按照4列的宽度输出。`getBinomialCoeff`函数用于计算组合系数,而`padZero`函数则用于保证数字前面有足够的零。
阅读全文
相关推荐


















