+8 投票
分类:问答挑战 | 用户: 8 5 3 (1.4k 分)

【问题描述】

给定一个非负整数num,生成杨辉三角的前num行。

在杨辉三角中,每个数是它左上方和右上方的和。

1680858690247096452.jpg

【输入形式】

一个非负整数(整型)

【输出形式】

一个用二维数组表示的杨辉三角

【样例输入】

5

【样例输出】

[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

【样例说明】

需要注意的是,如果输入为0,则输出为[],即一个空列表

 

 

4 个回答

+2 投票
用户: 10 8 4 (3.2k 分)
采纳于 用户:
 
已采纳

num=int(input())
list1=[]
for i in range(num):
    list2=[]
    if i==0:
        list2=[1]
    elif i==1:
        list2=[1,1]
    else:
        for j in range(i+1):
            if j==0 or j==i:
                list2.append(1)
            else:
                list2.append(list1[i-1][j-1]+list1[i-1][j])
    list1.append(list2)
print(list1)

用户: 10 9 5 (6.4k 分)
能否再贴一个运行结果的截图,谢谢!
+2 投票
用户: 9 8 7 (4.6k 分)

运行结果:

代码:

num=int(input())

list_1=[1]

list_2=[1,1]

List_=[[1],[1,1]]

if num==0:

    print("[]")

elif num==1:

    print("[[1]]")

elif num==2:

    print(List_)

else:

    for j in range(3,num+1):

        list_1=[1]

        for i in range(1,len(list_2)):

            list_1.append(list_2[i-1]+list_2[i])

        list_1.append(1)

        List_.append(list_1)

        list_2=list_1

    print(List_)

+3 投票
用户: 10 10 7 (8.0k 分)
def l(i):
    if i == 1:
        return [1]
    if i == 2:
        return [1,1]
    else:
        li = []
        li.append(1)
        for j in range(1, i - 1):
            li.append(l(i - 1)[j] + l(i - 1)[j - 1])
        li.append(1)
        return li

n = int(input())
result = []
if n == 0:
    print(result)
else:
    for i in range(1, n+1):
        result.append(l(i))
    print(result)

8

[[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]] 

+3 投票
用户: 6 3 (420 分)
number=int(input())
list_3=[]

number_1=1
list_1=[1]
list_2=[1,1]
list_3.append(list_1)
list_3.append(list_2)
list_1=list_2

while number_1<number-1:

  number_2=len(list_1)
  list_2 = list(range(0, number_2 + 1))
  for i in range(1,number_2):


     list_2[i]=list_1[i]+list_1[i-1]
     list_2[0]=1
     list_2[-1]=1
  list_3.append(list_2)
  number_1+=1

  list_1=list_2

if number==1:
    print([[1]])
elif number==0:
    print([])
else:
    print(list_3)
#C:\Users\10636\Desktop\代码>python timu.py
#8
#[[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]]




欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...