【问题标题】:Python - pascals trianglePython - 帕斯卡三角形
【发布时间】:2012-10-24 20:03:16
【问题描述】:

你好,我坚持这个练习。我正在做帕斯卡三角形,但似乎做得不够好,所以我大学的检查程序会接受它。 我必须使用def pascals_triangle(n),其中n=8。我可以让它工作,但问题在于输出 - 我得到数组...... 像这样:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]

此外,定义说每一行都应该写在 矩阵 P[64] 的行中,并且应该将空的地方设置为 0。我必须使用 for 循环和打印命令一行应该是这样的:

print "%d %d %d %d %d %d %d %d" % (P[0],P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8])

有什么想法吗?

【问题讨论】:

  • 您能否更具体地了解输入 n 的含义和输出的格式以及您尝试了哪些代码来准确地从数组中获取输出?

标签: python


【解决方案1】:

你在看这样的东西吗:

def pascal_iteration(n):
    rows = list()
    lr = None
    for i in range(n+1):
        try:
            lr = [1] + [lr[i] + lr[i+1] for i in range(len(lr) - 1)] + [1]
        except Exception:
            lr = [1]
        rows.append(' '.join(str(v) for v in lr))
    return rows

rows = pascal_iteration(8)
l = len(rows[-1])
print '\n'.join(v.center(l) for v in rows)

输出:

          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

【讨论】:

  • 这看起来不错,但它几乎违反了问题中的所有要求......
  • 我还没有答案,我问 OP 输出格式是什么意思 - 但你的输出甚至不像 8x8 矩阵,空位设置为 0
  • 我虽然这是 OP 所暗示的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2015-01-29
  • 2011-05-07
相关资源
最近更新 更多