C# 以所有可能的方式从数字中减去列表,以便结果数字大于 0
本文关键字:数字 列表 结果 大于 有可能 方式 | 更新日期: 2023-09-27 17:56:53
我需要从数字中减去列表,因此结果将等于或大于 0,结果尽可能小。我还需要查看减去了列表中的哪些项目。
int a = 10;
List<int> list = new List<int>();
我试过这个(可能真的很坏):
for (int c = 0; c < list.Count; c++)
{
if (a > 0)
{
a = a - list.ElementAt(c);
if (a < 0)
{
a = a + list.ElementAt(c);
}
else
{
Console.Write("{0}", list.ElementAt(c));
}
}
}
但问题是它只以一种方式减法,并没有找到最佳选择。
感谢您的任何想法。
我相信 OP 正在寻找减法后找到最小的可能结果,但该结果必须大于或等于零。
例如,如果{13, 12, 11, 9}
和给定的数字正在10
则每个列表项的减法后的结果应分别{3,2,1,-1}
,在这种情况下,最终结果应1
,因为它是最小值,但大于或等于零。
在这种情况下,代码可能如下所示:
int a = 10;
List<int> list = new List<int> {13, 12, 11, 9};
int min = -1;
for (int c = 0; c < list.Count; c++)
{
int tempResult = list[c] - a;
if (tempResult >= 0)
{
min = tempResult;
}
}
Console.WriteLine(min);