RosettaCodeData/Task/Combinations/Nim/combinations-2.nim

23 lines
402 B
Nim

iterator combinations(m: int, n: int): seq[int] =
var result = newSeq[int](n)
var stack = newSeq[int]()
stack.add 0
while stack.len > 0:
var index = stack.high
var value = stack.pop()
while value < m:
result[index] = value
inc value
inc index
stack.add value
if index == n:
yield result
break
for i in combinations(5, 3):
echo i