/* * File: perm.kt * Purpose: Prints all permutations of the first n nonnegative integers * Compilation: kotlinc perm.kt * Execution: kotlin PermKt n * where n is a positive integer * Author: San Skulrattanakulchai */ fun main(args: Array) { val n = args[0].toInt() val a = IntArray(n) { it } fun swap(i: Int, k: Int) { val temp = a[i] a[i] = a[k] a[k] = temp } fun perm(k: Int) { if (k == n) println(a.joinToString()) else for (i in k until n) { swap(i, k) perm(k+1) swap(i, k) } } perm(0) }