這裏是我如何調用下面的函數:c#爲什麼我的DECIMAL消極?
List<decimal> numbers = new List<decimal>();
numbers.Add(210m);
numbers.Add(188.83m);
numbers.Add(67.93m);
numbers.Add(125.92m);
numbers.Add(35.92m);
numbers.Add(19.16m);
numbers.Add(98.48m);
List<decimal> listresult = FindSumSubset(9075.12m, numbers);
** * ** * ** * ***功能 *
List<decimal> FindSumSubset(decimal sum, List<decimal> list)
{
for (int i = 0; i < list.Count; i++)
{
decimal value = list[i];
if (sum - value == 0.0m)
{
return new List<decimal> { value };
}
else
{
var subset = FindSumSubset(sum - value, list.GetRange(i + 1, list.Count-1 -i));
if (subset != null)
{
subset.Add(value);
return subset;
}
}
}
return null;
}
當我在調試模式下運行時,decimal sum
給了我一個巨大的n例如-93435.34
這怎麼會發生?
你的其他情況在for循環之外,是一個錯字? – 2010-11-11 22:28:38
檢查您的代碼。在for循環之後你有一個else子句。 – 2010-11-11 22:30:13
我想我修復了代碼(恢復了以前的一些編輯),但現在'新列表 {值};'不會編譯。 –
egrunin
2010-11-11 22:35:07