Non-continuous subsequences: Difference between revisions

Added Kotlin
(Added Kotlin)
Line 1,278:
150 => 1427247692705959881058285969449495136382735298
200 => 1606938044258990275541962092341162602522202993782792835281275
</pre>
 
=={{header|Kotlin}}==
<lang scala>// version 1.1.2
 
fun <T> ncs(a: Array<T>) {
fun generate(m: Int, k: Int, c: IntArray) {
if (k == m) {
if (c[m - 1] != c[0] + m - 1) {
for (i in 0 until m) print("${a[c[i]]} ")
println()
}
}
else {
for (j in 0 until a.size) {
if (k == 0 || j > c[k - 1]) {
c[k] = j
generate(m, k + 1, c)
}
}
}
}
 
for (m in 2 until a.size) {
val c = IntArray(m)
generate(m, 0, c)
}
}
 
fun main(args: Array<String>) {
val a = arrayOf(1, 2, 3, 4)
ncs(a)
println()
val ca = arrayOf('a', 'b', 'c', 'd', 'e')
ncs(ca)
}</lang>
 
{{out}}
<pre>
1 3
1 4
2 4
1 2 4
1 3 4
 
a c
a d
a e
b d
b e
c e
a b d
a b e
a c d
a c e
a d e
b c e
b d e
a b c e
a b d e
a c d e
</pre>
 
9,485

edits