2017-03-18 59 views
0

我只是想在遞歸函數的末尾添加一個括號。我簡直就是缺少最後的括號,但我無法弄清楚如何添加它!任何幫助是極大的讚賞!在遞歸函數中添加括號

我的代碼:

def sum(n): 

    if n == 0: 
     return '1' 

    elif n == 1: 
     return '(1+1)' 

    elif n == 2: 
     return '((1+1)+(1+1))' 

    elif n == 3: 
     return '(((1+1)+(1+1))+((1+1)+(1+1)))' 

    else: 
     return '((((1+1)+(1+1))+((1+1)+(1+1)))' + ')'sum_power2( n - 1 ) 

回答

1

只需切換順序的最後一排,所以這將是

def sum_power2(n): 

    if n == 0: 
     return '1' 

    elif n == 1: 
     return '(1+1)' 

    elif n == 2: 
     return '((1+1)+(1+1))' 

    elif n == 3: 
     return '(((1+1)+(1+1))+((1+1)+(1+1)))' 

    else: 
     return '((((1+1)+(1+1))+((1+1)+(1+1)))' + sum_power2( n - 1 )+')' 
0

試試這個:

def sum_power(n,tmp=''): 
    tmp = '1' if not tmp else '(' + tmp + '+' + tmp + ')' 
    if n == 0: 
     return tmp 
    else: 
     n -= 1 
     return sum_power(n,tmp) 


print(sum_power(2)) 
0

好,我不知道真的知道如何在python中編程,我不確定你是否可以這樣做,但你爲什麼不嘗試:

def sum_power2(n): 

if n == 0: 
    print('1') 

else: 
    return('(' + sum_power2(n-1) + ' + ' + sum_power2(n-1) + ')')