title: Fibonacci Rabbits Dying After Arbitrary # of Months
body: <p>So, I've seen a few solutions for this problem or similar problems, but I really want to know <em>why</em>  mine isn't working. It is much easier to read than a lot of solutions I've found, so I'd love to make it work!</p>
  
  <p>Starting with 1 pair of rabbits, which will begin to reproduce after 2 months. Run for n months, where rabbits die after they have lived for m months.
  Input of '6 3' should return 4, but it returns 3.</p>
  
  <pre><code>#run for n months, rabbits die after m months.
  n, m = input("Enter months to run, and how many months rabbits live, separated by a space ").split() 
  n, m = int(n), int(m)
  generations = [1, 1, 2] #Seed the sequence with the 1 pair, then in their reproductive month.
  def fib(i, j):
      count = 3 #we start at the 3rd generation.
      while (count &lt; i):
          if (count &lt; j):
              generations.append(generations[count-2] + generations[count-1]) #recurrence relation before rabbits start dying
          else:                                                               #is just the fib seq (Fn = Fn-2 + Fn-1)
              generations.append((generations[count-2] + generations[count-1]) - generations[(count-j)])  #Our recurrence relation when rabbits die every month
          count += 1                                                          #is (Fn = Fn-2 + Fn-1 - Fn-j)
      return (generations[count-1])
  
  
  print (fib(n, m))
  print ("Here's how the total population looks by generation: \n" + str(generations))
  </code></pre>
  
  <p>Thanks =]</p>