数据结构打印杨辉三角
时间: 2023-11-17 14:55:38 浏览: 87
可以使用二维数组来表示杨辉三角,每一行的第一个和最后一个数均为1,其余数为上一行相邻两数之和。代码如下:
```c++
#include <iostream>
using namespace std;
const int maxn = 20;
int a[maxn][maxn];
int main() {
int n;
cin >> n;
// 初始化第一行为1
a[1][1] = 1;
// 构造杨辉三角
for (int i = 2; i <= n; i++) {
a[i][1] = 1;
a[i][i] = 1;
for (int j = 2; j < i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
相关问题
数据结构打印杨辉三角形
杨辉三角形是一个由数字构成的三角形,它的规律是每个数等于它上方两数之和。下面是一个使用数据结构打印杨辉三角形的示例代码:
```python
def print_yanghui_triangle(n):
triangle = [[1] * (i + 1) for i in range(n)]
for i in range(2, n):
for j in range(1, i):
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
for row in triangle:
print(" ".join(str(num) for num in row))
# 打印一个6行的杨辉三角形
print_yanghui_triangle(6)
```
输出结果:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
数据结构打印杨辉三角C++
杨辉三角是一个经典的数学问题,它通常用在组合数学中,表示二项式系数,每个数字是它上面两个数字的和。在C++中,你可以使用动态数组或二维数组来实现一个递归或迭代的方式来打印杨辉三角。这里我将展示一个简单的迭代方法,利用嵌套循环来构建和打印杨辉三角。
```cpp
#include <iostream>
using namespace std;
void printPascalTriangle(int rows) {
int triangle[rows][rows];
// 初始化第一行和第一列
for (int i = 0; i <= rows; i++) {
triangle[i] = 1;
if (i > 0) triangle[i][i] = 1;
}
// 填充三角形
for (int i = 1; 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 j = 0; j <= i; j++) {
cout << triangle[i][j] << " ";
}
cout << endl;
}
}
int main() {
int rows;
cout << "Enter the number of rows for the Pascal's Triangle: ";
cin >> rows;
printPascalTriangle(rows);
return 0;
}
```
当你运行这个程序并输入想要的行数时,它会打印出对应大小的杨辉三角。相关问题:
1. 杨辉三角的应用有哪些?
2. 这段代码中的`triangle[i]`和`triangle[i][i]`分别代表什么?
3. 如何优化这段代码以减少内存使用?
阅读全文