java - 数的整数除法
问题描述
如何将一个数字分成相等的部分或尽可能接近相等。请参见下面的示例:
如果我想在两组之间分配 61 的值,则为 30.5 和 30.5。双打(小数)不好,所以在这方面最接近的分割是 30 和 31。
同样 42 / 5 = 8.4,但是我需要系统返回 (8, 8, 8, 9, 9),这是最接近整数的分割。
解决了伙计们:
if(sum % numberOfTeams != 0) {
al.add(0, sNOT);
for(int i = 0; i < numberOfTeams - 1; i++) {
int remover = sum - sNOT;
if(remover % (sNOT + 1) == 0) {
al.add(i+1, sNOT + 1);
}else {
al.add(i + 1, sNOT);
}
}
}
}
解决方案
这是一个完全使用的解决方案,Arrays
没有循环短一点。有效性检查也应该按照上面的建议进行
int value = 42;
int groups = 5;
int residue = value % groups;
int[] res = new int[groups];
int division = value / groups;
Arrays.fill(res, 0, residue, division +1);
Arrays.fill(res, residue, res.length, division);
System.out.println(Arrays.toString(res));
推荐阅读
- python - PySimpleGUI:如何在调整窗口大小时实现元素/框架/列向右对齐(和调整大小)
- python - 如何在 Python 中创建列表并仅初始化其中的一些值(与 C++ 相比)
- python - pandas.apply expand column ValueError: If using all scalar values, you must pass a index
- php - php后端对ajax请求的响应应该如何?
- angular - Angular Formly - 禁用单个无线电选项
- javascript - 如何使用异步在循环中使用发布请求
- python - 在 sqlalchemy 中使用 case 时出现 SQL 语法错误
- java - 使用Java读取spark redis保存的数据
- spring-boot - Spring Boot 集成测试因 MockMvc 的“没有合格的 bean”而失败
- google-cloud-platform - Microk8s(在 GCE 实例上)和 GKE 集群之间的 Istio 多集群