设计一个算法,打印杨辉三角形
时间: 2023-11-18 10:57:08 浏览: 33
以下是打印杨辉三角形的 Python 代码:
```python
def print_pascal_triangle(n):
result = []
for i in range(n):
row = [1] * (i+1)
for j in range(1, i):
row[j] = result[i-1][j-1] + result[i-1][j]
result.append(row)
# 打印杨辉三角
for row in result:
print(' '.join(map(str, row)).center(n*2))
```
算法描述:
1. 初始化一个空列表 result 用于存储杨辉三角形
2. 循环 n 次,每次生成一行杨辉三角形
- 初始化当前行 row,将其所有元素置为 1
- 对于当前行的第 2 到 i-1 列,计算其值为上一行对应列和前一列的和
- 将当前行加入 result 列表
3. 打印杨辉三角形
- 对于 result 中的每一行,将其转换成字符串并居中对齐,输出到控制台上
例如,调用 `print_pascal_triangle(5)` 将会输出:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
相关问题
用C语言写一个杨辉三角形算法
好的,以下是使用 C 语言写的杨辉三角形算法:
#include <stdio.h>
int main()
{
int rows, coef = 1;
printf("Enter number of rows: ");
scanf("%d", &rows);
for(int i = 0; i < rows; i++) {
for(int space = 1; space <= rows-i; space++)
printf(" ");
for(int j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef*(i-j+1)/j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
希望能帮到您!还有什么需要我回答的问题吗?
用递归算法输出杨辉三角形
好的,以下是用递归算法输出杨辉三角形的代码:
```python
def pascal_triangle(n):
if n == 0:
return []
elif n == 1:
return [[1]]
else:
lst = pascal_triangle(n-1)
last_row = lst[-1]
current_row = [1]
for i in range(len(last_row)-1):
current_row.append(last_row[i]+last_row[i+1])
current_row.append(1)
lst.append(current_row)
return lst
n = 5
for row in pascal_triangle(n):
print(row)
```
输出结果:
```
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
```
请注意,此代码已经在 ChitGPT 上测试,但由于内存限制的原因,当 n 太大时,它可能会崩溃。