【发布时间】:2017-05-23 19:19:11
【问题描述】:
为什么 while 循环在打印帕斯卡三角形时执行的次数比预期的要多? 每次执行 while 循环时 x 增加 1 而 n 保持不变 我刚开始学习python 请帮忙
memo = {0:1}
def fac(n):
if n not in memo:
memo[n] = n*fac(n-1)
return memo[n]
else:
return memo[n]
def pascal(x, space):
while(x <= n):
for j in range(space):
print(" ", end = "")
for i in range(0, x+1):
print ( int(fac(x)/(fac(i)*fac(x-i))), end = " " )
print("\n", end = "")
x += 1
space -= 1
pascal(x, space)
n = eval(input())
space = n
x = 0
pascal(x, space)
【问题讨论】:
-
备忘录与它有什么关系? memo的功能只是计算阶乘并将其分别存储在字典中@AzatIbrakov
-
究竟什么是“多于预期”?
-
@gabrielbelini 请运行它并查看
-
你可能应该使用factorial
-
删除内部递归调用
pascal(x, space)就可以了
标签: python-3.x