2011-10-11 84 views
-2

我想在Python中编写一个递归函数。我写了一个,但它不能正常工作。用Python递归地分割一系列数字

我有一个从1到1000的数字范围,我想把它分成两部分1到500和501到1000.然后我想递归地做到这一点,直到每个部分只有20个数字。

这里是我的尝试:

mw = range(1,1000) 
def cuter(mw): 
    if len(mw)<20: 
     return False 
    else: 
     cut=int(len(mw)/2) 
     number.append(mw[0]) 
     number.append(cut) 
     number.append(mw[-1]) 
     return cuter(mw) 
cuter(mw) 
+3

'范围(1,1000)[ - 20:] '? – JBernardo

+0

作业问题? – Tim

+0

所以你想要一个混淆代码的奖励...... – JBernardo

回答

4

尝试这样的事情,在那里seq是号码的范围列表:

def cutter(seq): 
    n = len(seq) 
    if n <= 20: 
     # here the recursion stops, do your stuff with the sequence 
     return 
    a = cutter(seq[:n/2]) 
    b = cutter(seq[n/2:]) 
    # combine the answer from both subsequences 
    return