我正在寻找一种非递归算法(最好是使用C#),它将从一组正数生成所有可能的和列表。
例如,对于三个数字“1,2,3”,可能有以下七个和:
1
2
3
1+2=3
1+3=4
2+3=5
1+2+3=6
最大集大小约为50。我知道如何递归地解决这个问题,但在处理类似问题时以往曾受到调用堆栈的限制,因此这次想避免使用递归算法。
例如,对于三个数字“1,2,3”,可能有以下七个和:
1
2
3
1+2=3
1+3=4
2+3=5
1+2+3=6
最大集大小约为50。我知道如何递归地解决这个问题,但在处理类似问题时以往曾受到调用堆栈的限制,因此这次想避免使用递归算法。
2 ^ 50
种不同的和。或者还有其他限制可以减少它们的数量吗?顺便说一句,在递归版本中,调用深度最多为50
。我认为这不是问题。 - kraskevichN
个数字,您将始终获得2^N
个总和。 - user743382