Sum of numbers from 1 to n
suggest changeIf I wanted to find out the sum of numbers from 1 to n where n is a natural number, I can do 1 + 2 + 3 + 4 + ... + (several hours later) + n. Alternatively, I could write a for loop:
n = 0
for i in range (1, n+1):
    n += iOr I could use a technique known as recursion:
def recursion(n):
    if n == 1:
        return 1
    return n + recursion(n - 1)Recursion has advantages over the above two methods. Recursion takes less time than writing out 1 + 2 + 3 for a sum from 1 to 3. For recursion(4), recursion can be used to work backwards:
Function calls: ( 4 -> 4 + 3 -> 4 + 3 + 2 -> 4 + 3 + 2 + 1 -> 10 )
Whereas the for loop is working strictly forwards: ( 1 -> 1 + 2 -> 1 + 2 + 3 -> 1 + 2 + 3 + 4 -> 10 ). Sometimes the recursive solution is simpler than the iterative solution. This is evident when implementing a reversal of a linked list.
  Found a mistake? Have a question or improvement idea?
  Let me know.
      
      Table Of Contents