作者Dong0129 (阿东)
看板Python
标题Re: [问题] 使用递回输出
时间Thu Oct 17 01:33:19 2019
感谢各位的解答,
我会再拜读各位的解法,
附上我用递回解开原文问题中以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)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.83.77 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1571247201.A.E62.html
※ 编辑: Dong0129 (220.137.83.77 台湾), 10/17/2019 01:34:25