用循环结构打印杨辉三角
时间: 2024-06-13 13:07:08 浏览: 86
以下是用循环结构打印杨辉三角的Python代码:
```python
n = 10 # 打印10行杨辉三角
triangle = [] # 存储杨辉三角的列表
for i in range(n):
row = [1] * (i + 1) # 初始化每一行的列表,元素都为1
for j in range(1, i):
row[j] = triangle[i-1][j-1] + triangle[i-1][j] # 计算当前元素的值
triangle.append(row) # 将当前行添加到杨辉三角列表中
print(' '.join(map(str, row)).center(n*2)) # 将当前行转换为字符串并居中打印
```
运行以上代码,即可打印出10行杨辉三角。
相关问题
数据结构打印杨辉三角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. 如何优化这段代码以减少内存使用?
用数据结构队列打印杨辉三角的代码
在Python中,可以使用队列(deque)来优雅地打印杨辉三角。杨辉三角是一个二项式系数表示的数组,每一行代表一个阶乘数,从左上角到右下角,每个数字是它上面两个数字之和。这里是一个简单的例子:
```python
from collections import deque
def print_pascal_triangle(n):
# 创建一个双端队列存储每一行的元素
triangle = deque()
for i in range(n):
# 添加当前行的空格
triangle.appendleft(" " * (n - i - 1))
# 添加当前行的第一个和最后一个数字
triangle.appendleft(1)
triangle.appendleft(1)
# 使用循环计算并添加剩余的元素
for _ in range(i):
triangle.appendleft(triangle[0] + triangle[1])
triangle.popleft()
print(''.join(triangle))
# 调用函数打印5级的杨辉三角
print_pascal_triangle(5)
```
当你运行这个代码时,会看到5级的杨辉三角逐行打印出来。
阅读全文