自学编程Python日更成长营

自学Python:打印杨辉三角形

2022-02-23  本文已影响0人  小强聊成长

杨辉三角形,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

杨辉三角形前7行入下图:

下面问题来了,设计一个程序打印杨辉三角形。

下面直接上代码:

########################

def c(x, y):# 杨辉三角形递归函数

    if y == 1 or y == x: # y=1或y=x时,函数返回值为1

        return 1

    else:

        z = c(x-1, y-1) + c(x-1, y) # y为其他值时的递推公式

        return z

if __name__ == "__main__":

    n = int(input("请输入杨辉三角的行数:"))

    for i in range(1, n+1): # 输出n行

        for j in range(0, n-i+1):

            print("  ", end=" ")

        for j in range(1, i+1):

            # 调用递归函数,输出第i行的第j个值

            print("%6d  " %(c(i, j)), end=" ")

        print()

########################

执行结果如下:

请输入杨辉三角的行数:18

                                                                            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 

                                    1      10      45      120      210      252      210      120      45      10        1 

                                1      11      55      165      330      462      462      330      165      55      11        1 

                            1      12      66      220      495      792      924      792      495      220      66      12        1 

                        1      13      78      286      715    1287    1716    1716    1287      715      286      78      13        1 

                    1      14      91      364    1001    2002    3003    3432    3003    2002    1001      364      91      14        1 

                1      15      105      455    1365    3003    5005    6435    6435    5005    3003    1365      455      105      15        1 

            1      16      120      560    1820    4368    8008    11440    12870    11440    8008    4368    1820      560      120      16        1 

        1      17      136      680    2380    6188    12376    19448    24310    24310    19448    12376    6188    2380      680      136      17        1 

________________END______________

上一篇 下一篇

猜你喜欢

热点阅读