假设有三组数字
一个 1,2
乙 3,4
Ç 5,6
结果
8,10
结果附近的数字
我想知道哪一个可以等于一个已知的集合数。我们可以发现B + C =结果。实际上我找到了一个单一数字的算法,但我需要的是多个数字。我完全不知道该怎么做。
我想知道是否有任何有效的算法来找出这样的组合。
我尝试使用单个数字下面的代码。但完全不知道怎么做双重数字。
public static IEnumerable<string> GetCombinations(int[] set, int sum, string values)
{
for (int i = 0; i < set.Length; i++)
{
int left = sum - set[i];
string vals = set[i] + "," + values;
if (left == 0) {
yield return vals;
}
else {
int[] possible = set.Take(i).Where(n => n <= sum).ToArray();
if (possible.Length > 0) {
foreach (string s in GetCombinations(possible, left, vals)) {
yield return s;
}
}
}
}
}
谢谢大家。原谅我英语不好。