exercises on recursion