Class ZeroEvenOdd
java.lang.Object
g1101_1200.s1116_print_zero_even_odd.ZeroEvenOdd
1116 - Print Zero Even Odd.
Medium
You have a function printNumber that can be called with an integer parameter and prints it to the console.
- For example, calling
printNumber(7)prints7to the console.
You are given an instance of the class ZeroEvenOdd that has three functions: zero, even, and odd. The same instance of ZeroEvenOdd will be passed to three different threads:
- Thread A: calls
zero()that should only output0’s. - Thread B: calls
even()that should only output even numbers. - Thread C: calls
odd()that should only output odd numbers.
Modify the given class to output the series "010203040506..." where the length of the series must be 2n.
Implement the ZeroEvenOdd class:
ZeroEvenOdd(int n)Initializes the object with the numbernthat represents the numbers that should be printed.void zero(printNumber)CallsprintNumberto output one zero.void even(printNumber)CallsprintNumberto output one even number.void odd(printNumber)CallsprintNumberto output one odd number.
Example 1:
Input: n = 2
Output: “0102”
Explanation: There are three threads being fired asynchronously. One of them calls zero(), the other calls even(), and the last one calls odd(). “0102” is the correct output.
Example 2:
Input: n = 5
Output: “0102030405”
Constraints:
1 <= n <= 1000
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoideven(IntConsumer printNumber) voidodd(IntConsumer printNumber) voidzero(IntConsumer printNumber)
-
Constructor Details
-
ZeroEvenOdd
public ZeroEvenOdd(int n)
-
-
Method Details
-
zero
- Throws:
InterruptedException
-
odd
- Throws:
InterruptedException
-
even
- Throws:
InterruptedException
-