use*_*840 4 java algorithm math distribution
假设我想将y项目x均匀分配到存储桶.如果x是y这个分布的倍数将是偶数,如果不是,我可以最终得到0每个桶中的项目.例如:
例如:我有3水桶,我想分配2每个项目.由于进行分割(2/3)将导致0每桶物品.如何能够做到,分布1,1,0?
这种思维应该有效:
package sandbox;
public class Sandbox
{
public static void main(String[] args)
{
int numBuckets = 12;
int numItems = 34;
int itemsPerBucket = (numItems / numBuckets);
int remainingItems = (numItems % numBuckets);
for (int i = 1; i <= numBuckets; i++)
{
int extra = (i <= remainingItems) ? 1:0;
System.out.println("bucket " + i + " contains " + (itemsPerBucket + extra) + " items.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个输出:
bucket 1 contains 3 items.
bucket 2 contains 3 items.
bucket 3 contains 3 items.
bucket 4 contains 3 items.
bucket 5 contains 3 items.
bucket 6 contains 3 items.
bucket 7 contains 3 items.
bucket 8 contains 3 items.
bucket 9 contains 3 items.
bucket 10 contains 3 items.
bucket 11 contains 2 items.
bucket 12 contains 2 items.
Run Code Online (Sandbox Code Playgroud)
请注意,您所做的唯一循环是谈论每个桶.您可以轻松地询问一个桶号,看看有多少物品没有循环!