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}}== |
||