在递归函数中添加括号

时间:2017-03-18 04:07:28

标签: python algorithm recursion

我只是想在递归函数的末尾添加一个括号..我实际上只是错过了最后的括号,但我无法弄清楚如何添加它!任何帮助是极大的赞赏!

我的代码:

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  )

3 个答案:

答案 0 :(得分: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  )+')'

答案 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))

答案 2 :(得分:0)

好吧,我真的不知道如何在python中编程,我不确定你是否可以这样做,但为什么不尝试这样做:

def sum_power2( n ): 

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

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