利用队列打印杨辉三角
时间: 2023-11-17 14:54:22 浏览: 54
利用队列打印杨辉三角的过程如下:
1. 创建一个空队列,并将第一行的元素1入队。
2. 循环以下步骤,直至打印出所需行数的杨辉三角:
3. 出队并打印队首元素。
4. 将出队元素与队首元素相加,得到下一行的元素值,并将该值入队。
5. 将出队元素重新入队。
6. 将队首元素出队并存储为下一行最后一个元素。
7. 算法结束。
下面是利用队列打印杨辉三角的代码示例:
```
from queue import Queue
def print_yanghui_triangle(n):
queue = Queue()
queue.put(1) # 第一行的元素1入队
for i in range(n):
temp = 0
for j in range(i+1):
value = queue.get()
print(value, end=' ')
queue.put(value + temp) # 下一行的元素入队
temp = value
print()
# 测试
print_yanghui_triangle(5)
```
相关问题
利用队列打印杨辉三角形
好的,这是一个很有趣的问题!请看下面的代码,它利用队列打印出了前 n 行的杨辉三角形:
```python
def printYangHui(n):
if n <= 0:
return
queue = [(1, 1)]
for i in range(n):
print(" "*(n-i-1), end="")
for j in range(i+1):
num, den = queue.pop(0)
print(num, end=" ")
if j < i:
queue.append((num+den, den))
print()
```
运行 `printYangHui(5)`,将会打印出如下的结果:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
希望这个答案对你有所帮助!
利用队列打印杨辉三角前十行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
代码如下:
```python
from queue import Queue
def yanghui_triangle(num_rows):
queue = Queue()
queue.put([1])
for i in range(num_rows):
row = queue.get()
print(' '.join(str(num) for num in row))
row.append(0)
next_row = [row[j-1] + row[j] for j in range(len(row))]
queue.put(next_row)
yanghui_triangle(10)
```