java 整数 按比例拆分成 集合
时间: 2023-11-10 17:09:22 浏览: 197
您好!您的问题是如何将一个整数按照比例拆分成多个集合,我理解为您需要将一个整数分成若干个部分,每个部分所占比例已知,例如将100分成三个部分,比例分别为2:3:5,则分别为40、60、100。
以下是一个Java示例代码,可以实现您的需求:
```java
public static List<Integer> splitByRatio(int n, int[] ratios) {
List<Integer> result = new ArrayList<>();
int sumRatio = 0;
for (int ratio : ratios) {
sumRatio += ratio;
}
int sum = 0;
for (int i = 0; i < ratios.length - 1; i++) {
int num = Math.round(n * ratios[i] / (float) sumRatio);
sum += num;
result.add(num);
}
result.add(n - sum);
return result;
}
```
其中,参数`n`表示需要拆分的整数,参数`ratios`表示每个部分所占的比例,返回值为一个整数集合,表示拆分后的每个部分的值。
例如,将100拆分成40、60、100三个部分,比例为2:3:5,则调用方法:
```java
List<Integer> result = splitByRatio(100, new int[]{2, 3, 5});
System.out.println(result); // 输出 [20, 30, 50]
```
其中,输出结果为`[20, 30, 50]`,表示将100分成三个部分,比例为2:3:5,分别为20、30、50。
阅读全文