1
def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)

Inserting a "print sum1" after the addition shows that sum1 is being increased, so I don't understand why the function returns None. The only thing I can think of is that sum1 is somehow being reset to 0 before being returned, but I have no idea why that would be.

purpleladydragons
  • 1,305
  • 3
  • 12
  • 28

2 Answers2

10

You need to write

def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        return recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)
wye.bee
  • 708
  • 4
  • 11
0
In [52]: def rec(x, sum = None):
if sum == None:
    sum = 0
if x > 0:
    sum += x
    return rec(x - 1, sum)
else:          
    return sum

....:

In [53]: rec(100)
Out[53]: 5050
Kracekumar
  • 19,457
  • 10
  • 47
  • 56