-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1195.py
More file actions
29 lines (25 loc) · 953 Bytes
/
1195.py
File metadata and controls
29 lines (25 loc) · 953 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from threading import Barrier
class FizzBuzz:
def __init__(self, n: int):
self.n = n + 1
self.br = Barrier(4)
def fizz(self, printFizz: 'Callable[[], None]') -> None:
for cur in range(1, self.n):
if cur % 3 == 0 and cur % 5 != 0:
printFizz()
self.br.wait()
def buzz(self, printBuzz: 'Callable[[], None]') -> None:
for cur in range(1, self.n):
if cur % 3 != 0 and cur % 5 == 0:
printBuzz()
self.br.wait()
def fizzbuzz(self, printFizzBuzz: 'Callable[[], None]') -> None:
for cur in range(1, self.n):
if cur % 3 == 0 and cur % 5 == 0:
printFizzBuzz()
self.br.wait()
def number(self, printNumber: 'Callable[[int], None]') -> None:
for cur in range(1, self.n):
if cur % 3 != 0 and cur % 5 != 0:
printNumber(cur)
self.br.wait()