我一直在编写代码来获取数组中所有元素的组合,但我不知道如何做到这一点。你们能给我点建议吗?
这就是我想做的..。
int[] num = {1, 2, 3, 4, 5};
int n = num.length;
int length = (n * (n - 1)) / 2;
int[] list = new int[length];
for (int j = 0; j < n - 1; j++) {
for (int p = 4;p < n; p--) {
for (int i = 0; (I < length); i++) {
list[i] = Math.abs(num[j] - num[j + p]);
}
p++;
}
}我的结果列表会是这样的。
list = {1, 2, 3, 4, 1, 2, 3, 1, 2, 1};提前谢谢你。
编辑:我很抱歉我没有把我的问题写得很清楚。我想做的是得到从数组中减去每个值的绝对值。1-2,1-3,1-4,1-5,2-3,2-4,2-5,3-4,3-5,4,5
for (int v : list) {
System.out.println(v);
}产出:1 2 3 4 1 2
发布于 2020-05-20 19:13:16
这样做如下:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] num = { 1, 2, 3, 4, 5 };
int n = num.length;
int length = (n * (n - 1)) / 2;
int[] list = new int[length];
// Index counter for list[]
int c = 0;
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
list[c++] = num[j];
}
}
// Display
System.out.println(Arrays.toString(list));
}
}输出:
[1, 2, 3, 4, 1, 2, 3, 1, 2, 1]发布于 2020-05-20 19:00:19
对于任何值n,以下内容都应该可以工作。关键是将内环的终止点建立在外环的终止点上。
System.out.println(string);
int n = 5;
int[] num = {1, 2, 3, 4, 5};
int length = (n * (n - 1)) / 2;
int m = 0;
int[] list = new int[length];
for (int i = 1; i<n ; i++) {
for (int k = 1; k <= n-i; k++) {
list[m++] = num[k-1];
}
}
System.out.println(Arrays.toString(list));打印
1 2 3 4 1 2 3 1 2 1 https://stackoverflow.com/questions/61920612
复制相似问题