【发布时间】:2017-11-04 08:22:02
【问题描述】:
问题:找出给定集合的所有可能组合。
解释:
例如:1;
输入
3(整数数组中的元素个数)
0 1 2
预期输出:
(0,1)(0,2)(1,2)
前 2
输入
5(元素数量)
0 1 2 3 4(整数数组)
预期输出
(0,1),(0,2),(0,3)(0,4)
(1,2) (1,3)(1,4) (2,3)(2,4)(3,4)
我的实现:
static void traverse( int[] ar) {
int n = ar.length;
for(int i=0;i<(n-1);i++) {
for(int j = (i+1);j<n;j++) {
System.out.printf("%d %d", i,j);
}
}
}
输出: 0 10 21 2 任何人都可以提出逻辑中的缺陷吗?
【问题讨论】:
-
你永远不会打印数组的元素。你打印他们的索引。除此之外,输出是正确的:它包含 0 1,然后是 0 2,然后是 1 2,如您所料。当然,它没有括号也没有逗号,因为您不打印任何内容。
-
它工作正常,但您的格式使输出看起来损坏。将
System.out.printf("%d %d", i,j);更改为System.out.printf("(%d, %d) ", ar[i], ar[j]); -
谢谢,这是 System.out.printf 的问题。
标签: java