添加列表 c# 元素时的所有可能组合


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

最新更新