杨辉三角实现方法(Python)

一、杨辉三角是什么?

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。

在这里插入图片描述

杨辉三角的性质:
1.每行首位数字都是1
2.每行中间的各项数字都是它肩上两个数字的和
3.第n行的数字有n个
4.第n行的项数总比第n-1行多一个

二、杨辉三角解法

1.二维数组:

代码如下(示例):

a = int(input())
list1 = [1]

for i in range(a):
    # 只有 1 行或者 2if i == 0:
        print(list1)
    elif i == 1:
        list1.append(1)
        print(list1)
    else: # 3行以上
        list2 = []
        for j in range(i+1):
            if j == 0:
                list2.append(1)
            elif j == i:
                list2.append(1)
            else:
                list2.append(list1[j]+list1[j-1])
        list1 = list2
        print(list1)

运行结果:

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

2.定义法:
先给出一个空列表,通过循环先进行追加列表,在对列表进行修改

代码如下(示例):

n = eval(input())
triangle = []
for i in range(n):
    cur = [1]
    triangle.append(cur)    
    if i == 0:
        continue
    pre = triangle[i-1]
    for j in range(i-1):
        cur.append(pre[j] + pre[j+1])
    cur.append(1)
print(triangle)

运行结果:

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

进程已结束,退出代码0

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐