python杨辉三角问题
生活随笔
收集整理的這篇文章主要介紹了
python杨辉三角问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述
楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數。
它的一個重要性質是:三角形中的每個數字等于它兩肩上的數字相加。
下面給出了楊輝三角形的前4行:
1
1 1
1 2 1
1 3 3 1
給出n,輸出它的前n行。
思路:除第一二行外,每一行第一個數和最后一個數為一,其它數等于上一行相同位置和前一個位置的兩數的和
詳細代碼:
def main():lis = [[1],[1,1]]lis1 = []num = 2n = int(input())while num<n:for i in range(len(lis[num-1])):if i ==0:lis1.append(1)else:s = lis[num-1][i]+lis[num-1][i-1]lis1.append(s)lis1.append(1)lis =lis+[lis1]lis1 =[]num +=1for i in range(n):for j in range(len(lis[i])):print(lis[i][j],end=' ')print(' ') main()運行結果:
4 1 1 1 1 2 1 1 3 3 1其他大佬的簡潔代碼:
l1 = [[1]] n = 1 num = int(input()) while n < num:l1.append(list(map(lambda x, y: x + y, [0] + l1[-1], l1[-1] + [0])))n += 1 for i in l1:for j in i:print(j, end=" ")print()該思路為:將每行前后各加上一個0,得到新的兩行,每個位置的數相加,得到的就是下一行
例如:0 1 2 1
? ? ? ? ? ?1 2 1 0
得到下一行:1 3 3 1
總結
以上是生活随笔為你收集整理的python杨辉三角问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年全球与中国汽车毫米波雷达市场现
- 下一篇: 今日南下,为了生活