c# - 找到具有给定除数的最接近的较大数字

标签 c# algorithm

我必须为客户分配元素。在分配算法中,在我分配剩余项目之前,所有客户都应该有一个特定的最小值。

其中一些项目是预先挑选的。对于这些预先挑选的元素,至少给出了一个容器数量。有时两个。

我需要一种有效的算法来找到最小值,该值高于每个客户给定的最小值,并且可以除以至少一个容器数量而没有余数。

这里有一些简单的代码可以更好地理解:

int  containerQty1;     
int? containerQty2;     // Can be null
int customerMinimum; 

int minimumToGet;

在此示例中,minimumToGet 的值应高于 customerMinimum,但必须除以 containerQty1 containerQty2.

最佳答案

给定两个数字,MD,您可以构造 M 之上的最小数字 X 使得DX 方法是先将D 加到M 上,然后减去和除以的余数D,即

int X = (M+D) - ((M+D) % D);

示例:M = 200D = 13。我们正在寻找 200 以上的 13 的最小倍数。

int X = (200+13) - ((200+13) % 13) = 213 - 5 = 208;

关于c# - 找到具有给定除数的最接近的较大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31885259/

相关文章:

php - 打印给定数组中子范围的所有组合

c++ - 在 C++ 中的 vector vector 上使用 "unique()"

c# - 无法从 token 类型 'StartObject' 获取 XML 字符串值

c# - 从数据 GridView 中选择数据

c# - 如何从 DateTime.Now 生成前 6 个月的列表

arrays - 找到数组的最大递增子集(不连续)

algorithm - 当数组长度为偶数时,在 mergesort 合并函数中应该做什么,特别是在 size=2 的情况下?

C#串口,模拟串口写入

c# - 如何创建包含一个字符串变量和三个 int 变量的字典

c# - 哪种 3D 渲染技术/算法最有效地按边绘制光束?