In: Computer Science
**
* Write a recursive function that removes the first k even numbers
* from the stack. If there are less than k even elements in the stack,
* just remove all even elements. Do not use any loops or data structures
* other than the stack passed in as a parameter.
* @param stack
* @param k
* @return Returns the number of elements removed from the stack.
*/
public static int removeEvenNumbers(Stack<Integer> stack, int k) {
return 0;
}
import java.util.Stack;
public class RemoveEven {
    public static int removeEvenNumbers(Stack<Integer> stack, int k) {
        if (!stack.empty()) {
            int num = stack.pop(), count = 0;
            boolean removed = false;
            if (num % 2 == 0 && k > 0) {
                k--;
                count++;
                removed = true;
            }
            count += removeEvenNumbers(stack, k);
            if (!removed) {
                stack.push(num);
            }
            return count;
        }
        return 0;
    }
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(3);
        stack.push(2);
        stack.push(7);
        stack.push(4);
        stack.push(1);
        System.out.println("Original stack: " + stack);
        int n = removeEvenNumbers(stack, 2);
        System.out.println("Modified stack: " + stack);
        System.out.println("Number of even numbers removed is " + n);
    }
}
