我需要一些addvice与visual studio C#在basicly做除法取决于什么是在一个checklistbox中选中[关闭]

41zrol4v  于 5个月前  发布在  C#
关注(0)|答案(1)|浏览(72)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

25天前关闭
Improve this question
你好,我需要一些帮助,划分一个变量的基础上,巫婆的框被选中,以最大的值检查第一次给我给予多少部分,每种类型需要的结果。

例如,在下面的图片中。

我需要48个数字输入,所以我希望得到的结果是1 32点卡和1 16点卡。
我想输入一个数字输入的数额说48一样,在例子图片,并根据什么是由“卡可用”在“DI”复选框列表中的区域检查它应该除以“数字输入”的值32如果“32点”被选中,16如果“16点”被选中,以计算有多少卡,我必须购买每种类型的最大的顺序(64点)到最小(4点),并显示它所需的卡“卡需要”区。作为例子,我需要48个数字输入,我有32点单位和16点单位可用,它应该显示我需要1x 32点卡和1x16点卡
它应该通过标签或文本框中的“所需文件夹”区域显示结果
老实说,我甚至不知道如何接近这一点,所以任何帮助将不胜感激。

q3qa4bjr

q3qa4bjr1#

这里有一个简单的解决方案,应该让你开始:

var digitalInputs = 48;
var availableCards = new[] { 32, 16 };

var cardsNeeded = availableCards.ToDictionary(c => c, _ => 0);

for (int i = 0; i < availableCards.Length; i++) {
    var card = availableCards[i];
    while (card <= digitalInputs) {
        digitalInputs -= card;
        cardsNeeded[card]++;
    }
}

字符串
我们的想法是按照降序遍历所有可用的卡片。如果当前卡片小于或等于您的数字输入,则从数字输入中减去该卡片的值,并将该卡片的一次使用存储在neededCards中。继续这样做,直到当前卡片太大而无法“适应”剩余的数字输入。之后,转到下一张可用的卡片,并执行相同的操作。
最后cardsNeeded将包含每张卡所需的金额。

相关问题