java. 有n多个人要平均分配到n个可容纳人数不同的场地,求代码
时间: 2024-03-09 10:47:13 浏览: 24
以下是一个简单的Java实现:
```java
public class DistributePeople {
public static void distribute(int[] capacities, int[] people) {
int n = capacities.length;
int[] assigned = new int[n];
int i = 0, j = 0;
while (i < n && j < people.length) {
if (capacities[i] > assigned[i]) {
assigned[i]++;
people[j]--;
if (people[j] == 0) {
j++;
}
} else {
i++;
}
}
if (j < people.length) {
System.out.println("分配失败:场地容量不足");
} else {
System.out.println("分配成功:每个场地分配人数为 " + Arrays.toString(assigned));
}
}
public static void main(String[] args) {
int[] capacities = {2, 3, 4, 1, 5};
int[] people = {5, 3, 6, 2, 4};
distribute(capacities, people);
}
}
```
其中,capacities数组保存了每个场地的容纳人数,people数组保存了需要分配到场地的人数。算法的核心部分是一个while循环,它将每个人依次分配到场地中,直到所有人都被分配完毕。如果某个场地的容纳人数不足以容纳剩余的人数,则认为分配失败。否则,就将每个场地分配到的人数保存在assigned数组中,并输出结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)