侧边栏壁纸
博主头像
问道

问道的小花园,总能给你带来惊喜

  • 累计撰写 68 篇文章
  • 累计创建 35 个标签
  • 累计收到 6 条评论

python全项目实战系列(十):输出杨辉三角

问道
2022-07-18 / 0 评论 / 0 点赞 / 467 阅读 / 924 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

本系列旨在通过一系列由浅入深的python实战代码或项目,使普通人也能感受到编程的乐趣,编程能够在平时的工作生活上有所帮助。欢迎查看系列的开篇词和前面文章。

概述

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

杨辉三角是中国数学史上的一个伟大成就。

杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。

本节用python来实现杨辉三角,代码遵循常规思路,不是很简洁优雅,不过这样也可以方便理解

代码实现过程

  1. 先构造一个n阶的0矩阵
  2. 再将边界处的值赋为1
  3. 累加,从上往下逐步构造杨辉三角
  4. 最后打印出对应位置的杨辉三角的值
from sys import stdout

#定义函数,n代表你要打印出几阶的杨辉三角
def YHtriangle(n):
    a = []
    #先构造一个n阶的0矩阵
    for i in range(n):
        a.append([])
        for j in range(n):
            a[i].append(0)
    #将对应值赋为1
    for i in range(n):
        a[i][0] = 1
        a[i][i] = 1
    #累加,从上往下逐步构造杨辉三角
    for i in range(2,n):
        for j in range(1,i):
            a[i][j] = a[i - 1][j-1] + a[i - 1][j]

    for i in range(n):
        print(' ' * (n - i), end='')#前面打印空格,使居中显示
        for j in range(i + 1):
            stdout.write(str(a[i][j]))#输出构成杨辉三角的数字
            stdout.write(' ')#输出数字之间的间隔
        print()#换行

#程序运行入口,打印10阶的杨辉三角
if __name__ == '__main__':
    YHtriangle(10)

输出10阶杨辉三角的结果

          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 

自己测试的时候可以增大n的值,输出更高阶的杨辉三角,碰到做杨辉三角的题的时候,也可以使用这个快捷的方法

0

评论区