Summarize and say sequence: Difference between revisions

Added Kotlin
(Added Kotlin)
Line 2,429:
19182716152413230000
]</lang></div>
 
=={{header|Kotlin}}==
<lang scala>// version 1.1.2
 
val sb = StringBuilder()
 
fun selfRefSeq(s: String): String {
sb.setLength(0) // faster than using a local StringBuilder object
for (d in '9' downTo '0') {
if (d !in s) continue
val count = s.count { it == d }
sb.append("$count$d")
}
return sb.toString()
}
 
fun main(args: Array<String>) {
var maxIterations = 0
val maxSeeds = mutableListOf<Int>()
val elements = mutableListOf<String>()
for (n in 1 until 1_000_000) {
elements.clear()
var next = n.toString()
elements.add(next)
while (true) {
next = selfRefSeq(next)
if (next in elements) {
val count = elements.size
if (count > maxIterations) {
maxIterations = count
maxSeeds.clear()
maxSeeds.add(n)
}
else if (count == maxIterations) {
maxSeeds.add(n)
}
break
}
elements.add(next)
}
}
for (n in maxSeeds) {
println("$n -> Iterations = $maxIterations")
var next = n.toString()
for (i in 1..maxIterations) {
println(next)
next = selfRefSeq(next)
}
println()
}
}</lang>
 
{{out}}
<pre>
9009 -> Iterations = 21
9009
2920
192210
19222110
19323110
1923123110
1923224110
191413323110
191433125110
19151423125110
19251413226110
1916151413325110
1916251423127110
191716151413326110
191726151423128110
19181716151413327110
19182716151423129110
29181716151413328110
19281716151423228110
19281716151413427110
19182716152413228110
 
9090 -> Iterations = 21
9090
2920
192210
19222110
19323110
1923123110
1923224110
191413323110
191433125110
19151423125110
19251413226110
1916151413325110
1916251423127110
191716151413326110
191726151423128110
19181716151413327110
19182716151423129110
29181716151413328110
19281716151423228110
19281716151413427110
19182716152413228110
 
9900 -> Iterations = 21
9900
2920
192210
19222110
19323110
1923123110
1923224110
191413323110
191433125110
19151423125110
19251413226110
1916151413325110
1916251423127110
191716151413326110
191726151423128110
19181716151413327110
19182716151423129110
29181716151413328110
19281716151423228110
19281716151413427110
19182716152413228110
</pre>
 
=={{header|Lua}}==
9,483

edits