Dinesman's multiple-dwelling problem: Difference between revisions

Content added Content deleted
mNo edit summary
Line 2,470: Line 2,470:
Fletcher resides on floor 4
Fletcher resides on floor 4
</pre>
</pre>

=={{header|Nim}}==
<lang Nim>import algorithm

type

Person {.pure.} = enum Baker, Cooper, Fletcher, Miller, Smith
Floor = range[1..5]

var floors: array[Person, Floor] = [Floor 1, 2, 3, 4, 5]

while true:
if floors[Baker] != 5 and
floors[Cooper] != 1 and
floors[Fletcher] notin [1, 5] and
floors[Miller] > floors[Cooper] and
abs(floors[Smith] - floors[Fletcher]) != 1 and
abs(floors[Fletcher] - floors[Cooper]) != 1:
for person, floor in floors:
echo person, " lives on floor ", floor
break
if not floors.nextPermutation():
echo "No solution found."
break</lang>

{{out}}
<pre>Baker lives on floor 3
Cooper lives on floor 2
Fletcher lives on floor 4
Miller lives on floor 5
Smith lives on floor 1</pre>

=={{header|Perl}}==
=={{header|Perl}}==