Sailors, coconuts and a monkey problem: Difference between revisions

Added Kotlin
(Added Kotlin)
Line 624:
With 7 sailors, there were originally 823537 coconuts, and each sailor finally ended up with 39990.
With 8 sailors, there were originally 117440505 coconuts, and each sailor finally ended up with 5044200.</lang>
 
=={{header|Kotlin}}==
<lang scala>// version 1.1.2
 
fun main(args: Array<String>) {
var coconuts = 11
outer@ for (ns in 2..9) {
val hidden = IntArray(ns)
coconuts = (coconuts / ns) * ns + 1
while (true) {
var nc = coconuts
for (s in 1..ns) {
if (nc % ns == 1) {
hidden[s - 1] = nc / ns
nc -= hidden[s - 1] + 1
if (s == ns && nc % ns == 0) {
println("$ns sailors require a minimum of $coconuts coconuts")
for (t in 1..ns) println("\tSailor $t hides ${hidden[t - 1]}")
println("\tThe monkey gets $ns")
println("\tFinally, each sailor takes ${nc / ns}\n")
continue@outer
}
}
else break
}
coconuts += ns
}
}
}</lang>
 
{{out}}
<pre>
2 sailors require a minimum of 11 coconuts
Sailor 1 hides 5
Sailor 2 hides 2
The monkey gets 2
Finally, each sailor takes 1
 
3 sailors require a minimum of 25 coconuts
Sailor 1 hides 8
Sailor 2 hides 5
Sailor 3 hides 3
The monkey gets 3
Finally, each sailor takes 2
 
4 sailors require a minimum of 765 coconuts
Sailor 1 hides 191
Sailor 2 hides 143
Sailor 3 hides 107
Sailor 4 hides 80
The monkey gets 4
Finally, each sailor takes 60
 
5 sailors require a minimum of 3121 coconuts
Sailor 1 hides 624
Sailor 2 hides 499
Sailor 3 hides 399
Sailor 4 hides 319
Sailor 5 hides 255
The monkey gets 5
Finally, each sailor takes 204
 
6 sailors require a minimum of 233275 coconuts
Sailor 1 hides 38879
Sailor 2 hides 32399
Sailor 3 hides 26999
Sailor 4 hides 22499
Sailor 5 hides 18749
Sailor 6 hides 15624
The monkey gets 6
Finally, each sailor takes 13020
 
7 sailors require a minimum of 823537 coconuts
Sailor 1 hides 117648
Sailor 2 hides 100841
Sailor 3 hides 86435
Sailor 4 hides 74087
Sailor 5 hides 63503
Sailor 6 hides 54431
Sailor 7 hides 46655
The monkey gets 7
Finally, each sailor takes 39990
 
8 sailors require a minimum of 117440505 coconuts
Sailor 1 hides 14680063
Sailor 2 hides 12845055
Sailor 3 hides 11239423
Sailor 4 hides 9834495
Sailor 5 hides 8605183
Sailor 6 hides 7529535
Sailor 7 hides 6588343
Sailor 8 hides 5764800
The monkey gets 8
Finally, each sailor takes 5044200
 
9 sailors require a minimum of 387420481 coconuts
Sailor 1 hides 43046720
Sailor 2 hides 38263751
Sailor 3 hides 34012223
Sailor 4 hides 30233087
Sailor 5 hides 26873855
Sailor 6 hides 23887871
Sailor 7 hides 21233663
Sailor 8 hides 18874367
Sailor 9 hides 16777215
The monkey gets 9
Finally, each sailor takes 14913080
</pre>
 
=={{header|Perl 6}}==
9,476

edits