Now, suppose that you rewrite the rabbits
method in terms of two
auxiliary methods:
public static int rabbits (int n) {
if (n == 0 || n == 1) {
return 1;
}
else {return previousMonth(n) + penultimateMonth(n);}
}
Realizing that previousMonth
must return the number of rabbits at
the end of the previous month, you see that you can define
previousMonth
as follows:
public static int previousMonth (int n) {return rabbits(n - 1);}
Analogous reasoning leads you to the following definition for
penultimateMonth
:
public static int penultimateMonth (int n) {return rabbits(n - 2);}