/* * File: subsets.kt * Purpose: Prints all subsets of the first n nonnegative integers * Compilation: kotlinc subsets.kt * Execution: kotlin SubsetsKt n * where n is a positive integer * Author: San Skulrattanakulchai */ fun main(args: Array) { val n = args[0].toInt() val b = BooleanArray(n) fun subsets(i: Int) { if (i == n) { for (j in b.indices) if (b[j]) print(" $j") println() } else { b[i] = false subsets(i+1) b[i] = true subsets(i+1) } } subsets(0) }