2017-03-18 112 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) + ')')