#!/usr/bin/env nit # # This file is part of NIT ( http://www.nitlanguage.org ). # This program is public domain # Task: 100 doors # SEE: # A door with two states: open or closed class Door # Is this door open? var open = false # Toggle bool value of open fun toggle do open = not open redef fun to_s: String do return if open then "Open" else "Closed" end end var doors = new Array[Door] for door in [0..100[ do doors.add(new Door) var n = 100 for visit in [0..n[ do var i = visit while i < n do doors[i].toggle i += visit+1 end end for i in [0..n[ do print "Door {i+1}: {doors[i]}"