Discuss / Python / 交作业 没用到yield,倒是用到了。。。。递归?

交作业 没用到yield,倒是用到了。。。。递归?

Topic source

def w(n,L=[1,1]): if n==1: print([1]) elif n==2: w(n-1) print([1,1]) else: if len(L)==n: w(n-1) print(L) else: return s(len(L)+1,L,n) def s(m,K,n): L,a,b=[1,1],0,0 while b<m-2: a=K[b]+K[b+1] L.insert(b+1,a) b=b+1 return w(n,L) 作为一个刚学2天的萌新,实在不知道怎么用yield,倒是结合杨辉三角的构成弄出了这个。。(写了5个小时!!各种错误不知啥原因,到处百度谷歌)。直接w(10)就是想要的效果(即杨辉三角),要是想要各排数字,去掉两个w(n-1)即可。(顺便这可以用来算组合数)


  • 1

Reply