exercise 1 recursion explanation