我尝试创建用于生成 Pascal 三角形的递归函数,如下所示。
numRows = 5
ans=[[1],[1,1]]
def pascal(arr,pre,idx):
if idx==numRows:
return ans
if len(arr)!=idx:
for i in range (0,len(pre)-1,1):
arr+=[pre[i]+pre[i+1]]
if len(arr)==idx:
arr+=[1]
ans.append(arr)
pascal([1],arr,idx+1)
a = pascal([1],ans[1],2)
return a
我得到的输出是一个空列表[ ]。但是如果我return在调用时pascal添加
return pascal([1],arr,idx+1)
输出是正确的[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]。
据我了解,a应该由 分配return ans。那么为什么在没有a电话的情况下没有得到答案,为什么在这种情况下有必要呢?pascalreturnreturn
HUWWW
潇潇雨雨
千巷猫影
函数式编程
相关分类