practice problems involving recursion