## Steps in drawing out the recursive call.

How to write a method that calls itself. https://www.youtube.com/watch?v=MyzFdthuUcA – Dave Feinberg’s video series.

*Write “if”.*

There must be at least 2 cases:, a recursive case (where the method calls itself) and a base case (where the method does not).*Handle the simplest case(s).*“Base Case”

Simplest = no recursive call needed (no further loop)*Write the recursive call(s).*On the next simpler input/state, it may help to store the recursive call

*Assume the recursive call works .*

Ask yourself: What does it do?

Ask yourself: How does it help?

## Factorial

### Base Case

If n! is defined as the product of all positive integers from 1 to n, then:

1! = 1*1 = 1

2! = 1*2 = 2

3! = 1*2*3 = 6

4! = 1*2*3*4 = 24

…

n! = 1*2*3*…*(n-2)*(n-1)*n

and so on.

Logically, n! can also be expressed n*(n-1)! .

Therefore, at n=1, using n! = n*(n-1)!

1! = 1*0!

which simplifies to 1 = 0!

### Java Recursive Factorial Method

// precondition: n >= 0 public static in fact(int n) { if (n=0) return 1; else return fact(n-1) * n; }