Re: [问题] 使用递回输出

楼主: Dong0129 (阿东跟上面讲的情况一样b)   2019-10-17 01:33:19
感谢各位的解答,
我会再拜读各位的解法,
附上我用递回解开原文问题中以5当作进位的排列组合,
但这个做法可能会违反python默认的递回次数...
故开头需要设定递回的天花板,
#!/usr/bin/python
import os
import sys
sys.setrecursionlimit(1000000) #设定递回天花板
Rams=[1,2,3,4,5]
Sample=[1,1,1,1,1]
def processElement(N):
if Sample[N]==5:
if Sample.count(5)==5:
print(Sample)
return
if N-1<len(Sample):
if Sample[N+1]==4:
return processElement(N+1)
Sample[N+1]=Rams[Rams.index(Sample[N+1])+1]
print(Sample)
for index in range(N,-1,-1):
Sample[index]=1
if N>-1:
return processElement(N)
if N>0:
return processElement(N-1)
print(Sample)
Sample[N]=Rams[Rams.index(Sample[N])+1]
return processElement(N)
if __name__=='__main__':
processElement(len(Sample)-1)

Links booklink

Contact Us: admin [ a t ] ucptt.com