Pascal三角形变化的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pascal三角形变化的问题相关的知识,希望对你有一定的参考价值。

我正在尝试制作Pascal三角形的变体。我目前拥有的是下面的代码,它将产生一个帕斯卡的三角形,如下所示:

1 
1 1 
1 2 1 
1 3 3 1 

但是我需要产生这样的内容(用0填充空白点):

1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1 

我应该如何修改我的代码来实现这一目标?我的代码如下:

n = int(input("Enter number: "))

def chess(row, col):
    if (col ==1): return 1
    if (col ==row): return 1
    upleft = chess(row - 1, col - 1)
    upright = chess(row-1, col)
    return upleft + upright

for r in range (1, n+1):
    for c in range (1, r+1):
        print (chess(r,c), end = " ")
    print("")
答案

只需返回第二个for循环后再添加print ('0 '*(n-r))

您不需要print("")行。

for r in range (1, n+1):
    for c in range (1, r+1):
        print (chess(r,c), end = " ")
    print ('0 '*(n-r))
另一答案

将最后一个print()语句替换为:

print(*([0]*(n-r-1)),sep=" ")

以上是关于Pascal三角形变化的问题的主要内容,如果未能解决你的问题,请参考以下文章

Pascal's Triangle

Leetcode#118. Pascal's Triangle(杨辉三角)

119 Pascal's Triangle II 帕斯卡三角形 II Pascal's Triangle II

打印杨辉三角形(Pascal's triangle)——利用队列

算法:杨辉三角(Pascal's Triangle)

118 Pascal's Triangle 帕斯卡三角形