前言
遇到一个比较麻烦的组件,其中涉及到:100被N尽量平均分配
一、看代码
/**
* 100被n平均分,如:
* 100被3平均分:34,33,33
* 100被13平均分:8,8,8,8,8,8,8,8,8,7,7,7,7
*/
public static Integer[] avg100(Integer total, Integer number) {
Integer[] result = new Integer[number];
int value = total / number;
int index = total - (value * number);
for (int i = 0; i < number; i++) {
if (i < index) {
result[i] = value + 1;
} else {
result[i] = value;
}
}
return result;
}
二、结果
public static void main(String[] args) {
Integer[] result = avg100(100,13);
Integer total = 0;
for (Integer integer : result) {
System.out.print(integer);
System.out.print(",");
}
System.out.println();
for (Integer value : result) {
total += value;
}
System.out.println(total);
}
8,8,8,8,8,8,8,8,8,7,7,7,7,
100