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