帕斯卡三角形的变分问题

2024-06-21 20:03:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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("")

Tags: 代码inforreturnifrangecol变体
2条回答

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

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

只需在返回第二个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))

相关问题 更多 >