【发布时间】:2017-10-11 11:36:20
【问题描述】:
N=3
pre_calc=["-1" for i in range (N+2)]
def calc(i) :
if(pre_calc[i] =="-1"):
if i==0:
pre_calc[i] ="a[0]"
elif i==N+1:
pre_calc[i]= "a[N+1]"
else:
pre_calc[i] ="("+str(calc(i-1))+"+"+str(calc(i+1))+")/2-c["+str(i)+"]"
return pre_calc[i] ;
ans=calc(1)
print (ans)
我正在求解递归 a[i] =(a[i-1]+a[i+1])/2-c[i],其中 c[i], a[0] 和 a[N+ 1]。那是 Timus 的问题 1047。
因此,为了理解这种重复,我决定编写一个程序,它会根据 a[0]、a[N+1] 和 c[i] 输出 a[1] 的表达式。
我做到了。
点它绝对行不通!
我想知道为什么即使 N 为 2 也会超过堆栈深度限制。
【问题讨论】:
标签: python recursion stack depth recurrence