Here's a classic mathematical problem that goes back to Leonardo
Fibonacci (?  ca 1250). To get a neat formulation, we're going to
make the extreme assumptions that every pair of rabbits matures in one
month, and produces a pair of baby rabbits the month after reaching
maturity and every month thereafter. Start with one pair of baby
rabbits at the beginning of Month 0. At the beginning of Month 1 this
pair matures, but there will still be only one pair of rabbits. By
the beginning of Month 2, however, there will be two pairs: the
original pair, plus one new baby pair born to that original pair. By
the beginning of Month 3, there will be only one more pair, for a
total of three pairs, because the baby pair is not yet able to
reproduce. By the beginning of Month 4, however, there will be a
total of five pairs, three from the preceding month, plus two more
born to the pairs that were mature that preceding month.

Derive a difference equation that specifies r(n), the number of
rabbit pairs at month n, in terms of r(n1) and r(n2).
Note that r(0) = 1, r(1) = 1, r(2) = 2, r(3) = 3, r(4) = 5, ...
 Draw a block diagram of the system.
 How many rabbit pairs will there be after one year? You can do this
manually, or you might write a simple Matlab program.
 Do you think this system is stable?
 Can you derive a closedform expression for r(n) that is a
function of n only? (We will reconsider this question after we
discuss the Z transform.)
(This problem is from
K. Steiglitz, A Digital Signal Processing Primer, AddisonWesley, 1996,
page 195.)