[Tutor] A small (but long) introduction to recursion

Kevin McCormick kev@sat.net
Mon, 30 Jul 2001 08:21:39 -0500


Danny Yoo wrote:
> 
> On Wed, 25 Jul 2001, Danny Yoo wrote:
> 
> > > def addUpToNRecursive(n):
> > >     if n == 0: return 0
> > >     print n
> > >     return addUpToNRecursive(n-1) + n
> > >
> > > x = addUpToNRecursive(10)
> > > print x
> 
> If it helps, try this version of the program:
> 
> ###
> def addUpToN(n):
>     if n == 0: return 0
>     print (' ' * n) + "Trying to figure out addUpToN(%s)" % n
>     answer = addUpToN(n-1) + n
>     print (' ' * n) + "The answer of addUpToN(%s) is %s" % (n, answer)
>     return answer
> ###
> 
> It's a little bit longer, but it does print something pretty:
> 
> ###
> >>> addUpToN(5)
>      Trying to figure out addUpToN(5)
>     Trying to figure out addUpToN(4)
>    Trying to figure out addUpToN(3)
>   Trying to figure out addUpToN(2)
>  Trying to figure out addUpToN(1)
>  The answer of addUpToN(1) is 1
>   The answer of addUpToN(2) is 3
>    The answer of addUpToN(3) is 6
>     The answer of addUpToN(4) is 10
>      The answer of addUpToN(5) is 15
> 15
> ###
> 
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor

Thanks very much, it is now clear as fog, which is better than mud. 
Sincee I am just a hacker and not a CS major, this basic understanding
seems good enough for now.  Thanks again!