Python教程

Python123-杨辉三角【光】-列表元组#69499(输出格式完整版)

本文主要是介绍Python123-杨辉三角【光】-列表元组#69499(输出格式完整版),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

杨辉三角

描述 

杨辉三角形,也称帕斯卡三角,其定义为:顶端是 1,视为(row0).第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和 (不在三角形内的数视为0).依此类推产生第2行(row2):0+1=1;1+1=2;1+0=1.第3行(row3):0+1=1;1+2=3; 2+1=3;1+0=1. 循此法可以产生以下诸行,如下图所示。
定义一个函数 ,传入正整数参数 M,输出 M 行的成辉三角(为使格式美观,采用M行中最大数的位数做为数字输时占位宽度)。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

输入格式

 一个正整数,如:12 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

输出格式

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

输入输出示例

输入输出
示例 18

解题代码:

# 输出杨辉三角
import math
num=eval(input()) #输入想要计算的杨辉三角形的阶数
n=len(str(int(math.factorial(num)/(math.factorial(int(num/2))*math.factorial(num-int(num/2))))))            #判断最大的数字位数
ls=[]
def yhlist(m):                                                                                              #计算每行的数字
    global ls
    if m==1:
        ls.append(1)
        return ls
    else:
        ls.insert(0,0)
        ls.append(0)
        for i in range(m):
            ls[i]=(ls[i]+ls[i+1])                                                                           #肩上两个数字和      
        return ls
for i in range(1,num+1):
    lt=yhlist(i).copy()                                                                                     #创建新列表,防止旧值被改变
    s=0
    print(" "*(n*(num+1-i)),end="")                                                                         #控制输出格式
    for j in range(i):
        s=s+lt[j]
        print("{:{}}".format(lt[j],n),end=(" "*n))                                                          #最大位数作为间隔与数字输出长度
    print(" "*(n*(num+1-i)),end="")
    print()

 

这篇关于Python123-杨辉三角【光】-列表元组#69499(输出格式完整版)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!