新手求教:请问怎样用python 显示杨辉三角,任意输入一个数N,输出一个N+1层的杨辉三角。

输出结果希望如下:... 输出结果希望如下: 展开
 我来答
百度网友4826b3c
2015-03-28 · TA获得超过5024个赞
知道大有可为答主
回答量:2999
采纳率:96%
帮助的人:1312万
展开全部

我来试一下:

#!/usr/bin/python
# coding:utf-8
n = -1
while n < 0:
   n = raw_input("Enter a nonnegative integer >= 0:")
   try:
       n = int(n)
   except:
       print "please enter integer!"
       n = -1
tmppascal = [0,]* (2 * n + 3)
pascal = []
for i in range(n + 2):
   pascal += [tmppascal[:],]
center = n + 1
pascal[1][center] = 1
x = y = 0
for i in range(2, n + 2):    
   if n % 2 == 1:
       if i % 2 == 0:
           x = 1
           y = 2 * n + 2
       else:
           x = 2
           y = 2 * n + 1
   else:
       if i % 2 == 1:
           x = 1
           y = 2 * n + 2
       else:
           x = 2
           y = 2 * n + 1
   for j in range(x, y, 2):
       pascal[i][j] = pascal[i - 1][j - 1] + pascal[i - 1][j + 1]
if n % 2 == 0:
   max = pascal[n + 1][center]
else:
   max = pascal[n + 1][center - 1]
maxlen = len(str(max))
for row in pascal[1:]:
   for col in row[1:-1]:
       if col == 0:
           col = ""
       fm = '{0: ^' + str(maxlen) + '}'
       print fm.format(col),
   print
更多追问追答
追问
这个输出结果格式不对啊?全在一条直线上,不是三角啊
追答
最后一行的print别删除了。
你的python版本是哪个?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式