Python123-杨辉三角【光】-列表元组#69499(输出格式完整版)
2021/11/3 14:09:48
本文主要是介绍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
输出格式
输入输出示例
输入 | 输出 | |
示例 1 | 8 |
解题代码:
# 输出杨辉三角 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(输出格式完整版)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程