Added solution to problem 3 using recursion