Mỗi người đếm độc lập, với 2 biến được lưu với từng người:
- state: trạng thái công tắc X (bật (1) / tắt (0))
- count: số người đã đếm được.
Với một người bất kì, có 3 trường hợp xảy ra:
- Chưa từng vào phòng, count = 0.
- Vào phòng lần đầu tiên, bật/tắt công tắc X, và ghi nhận trạng thái sau khi bật tắt
- state = trạng thái công tắc X (sau khi bật/tắt).
- count = 1
- Từ lần vào phòng thứ hai về sau:
- Trường hợp count = 23: bật/tắt công tắc Y và coi như đã đếm 23 người vào phòng. Kết phút việc đếm.
- Trường hợp count < 23:
- Nếu state và trạng thái công tắc X khác nhau, bật/tắt công tắc X.
- state giữ nguyên
- count = count + 1
- Nếu state và trạng thái công tắc X giống nhau, bật/tắt công tắc Y.
- state giữ nguyên.
- count giữ nguyên.
- Nếu state và trạng thái công tắc X khác nhau, bật/tắt công tắc X.