Class ZeroEvenOdd
- java.lang.Object
-
- g1101_1200.s1116_print_zero_even_odd.ZeroEvenOdd
-
public class ZeroEvenOdd extends Object
1116 - Print Zero Even Odd.Medium
You have a function
printNumberthat 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
ZeroEvenOddthat has three functions:zero,even, andodd. The same instance ofZeroEvenOddwill 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 be2n.Implement the
ZeroEvenOddclass: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
- For example, calling
-
-
Constructor Summary
Constructors Constructor Description ZeroEvenOdd(int n)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voideven(IntConsumer printNumber)voidodd(IntConsumer printNumber)voidzero(IntConsumer printNumber)
-
-
-
Method Detail
-
zero
public void zero(IntConsumer printNumber) throws InterruptedException
- Throws:
InterruptedException
-
odd
public void odd(IntConsumer printNumber) throws InterruptedException
- Throws:
InterruptedException
-
even
public void even(IntConsumer printNumber) throws InterruptedException
- Throws:
InterruptedException
-
-