问题:
一个盒子可容纳53件物品.如果一个人有56个项目,则需要2个盒子来容纳它们.方框1将容纳53个项目,方框2将容纳3个项目.
我如何重复上面的内容,其中53是一个不变的,不变的值,56是每个框的变量:
Math.Ceiling(Convert.ToDecimal(intFeet / 53))
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是:
int TotalItems = 56;
int Boxes = Math.Ceiling(Convert.ToDecimal(intFeet / 53));
for (int i = 0; i < Boxes; i++)
{
int itemsincurrentbox=??
}
Run Code Online (Sandbox Code Playgroud)
Bil*_*ard 17
如果整数capacity和numItems您的盒容量(示例中为53)和您拥有的项目总数,请使用以下两个计算:
int numBoxes = numItems / capacity;
int remainder = numItems % capacity;
Run Code Online (Sandbox Code Playgroud)
这将为您提供fill(numBoxes)的框数,以及附加框中的项目数(remainder)(如果有),因为此值可能为0.
编辑:正如Luke在评论中指出的那样,您可以使用.NET类库函数Math.DivRem获得相同的结果.
int remainder;
int numBoxes = Math.DivRem( numItems, capacity, out remainder );
Run Code Online (Sandbox Code Playgroud)
此函数返回商并将余数放在输出参数中.
简单,过于迫切的例子:
int itemsPerBox = 53;
int totalItems = 56;
int remainder = 0;
int boxes = Math.DivRem(totalItems, itemsPerBox, out remainder);
for(int i = 0; i <= boxes; i++){
int itemsincurrentbox = i == boxes ? remainder : itemsPerBox;
}
Run Code Online (Sandbox Code Playgroud)