110,571
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
Knapsack(7, 8);
//TestLinqOrder();
Console.ReadLine();
}
static void Knapsack(int m, int n)
{
var list = Enumerable.Range(1, n).ToList();
var allCombination = from t in Enumerable.Range(0, 1 << list.Count)
select
from i in Enumerable.Range(0, list.Count)
where (t & (1 << i)) != 0
select list[i];
var result = allCombination.ToList().Where(c => c != null && c.Count() > 0 && c.Aggregate((p, i) => p + i) == m);
result.ToList().ForEach(c =>
{
Console.WriteLine("结果");
c.ToList().ForEach(d => Console.Write(d + ","));
Console.WriteLine("");
});
}
http://stackoverflow.com/questions/15470672/finding-possible-combinations-linq