namespace CombinationWork
{
class Program
{
static void Main(string[] args)
{
List<int> List = new List<int>(new int[] {1,2,5,10});
for (int noSelected=0;noSelected<4;noSelected++)
{
for(int noAdded=0;noAdded<4;noAdded++)
{
List.Add(List[noSelected]+List[noAdded]);
}
}
List = List.Distinct().ToList();
for (int display = 0; display < List.Count; display++)
{
Console.WriteLine( List[display]);
}
Console.ReadLine();
}
}
}
需要伙计们的帮助。 假设我有一个数组: int[] a={1,2,5,10}; 我想将所有元素相互添加.例:
- 1
阿拉伯数字
2+1=3
- 5+1=6
- 5+2=7
- 5+2+1=8
- 10
- 10+1=11
- 10+2=12
- 10+2+1=13
- 10+5=15
- 10+5+1=16
- 10+5+2=17
- 10+5+2+1=18
我得到一些不准确的值。错误在于使用嵌套的 for 循环,但我不知道还能用什么
对于 n 个数字,它应该给你 2 个 pow n 组合。 使用数字的二进制表示形式发布所有组合。
例 二进制 - 001 十进制 - 1 二进制 - 010 十进制 - 2 二进制 - 011 十进制 - 3 ... 二进制 - 001 十进制 - 1
从上面的真值表中,仅当相应的二进制数字为 1 时才包括一个数字来求和
例如,列表 [1, 2, 3] 中的数字;解释如下: 对于二进制 - 001,您应该得到 3 对于二进制 - 010,您应该得到 2 对于二进制 - 011,您应该得到 2 + 3 = 6