2
思想在相当长的时间,就如何使输出从给定的输入阵列中的所有可能的组合Java程序之后,我终于想到了通过组合递归和迭代这样做的。方案的排列组合产生意想不到的输出
我的代码需要输入字符数组{a,b,c}
并应长度的所有可能的阵列的输出3.
我的代码是 -
public class Brute {
char[] val = new char[] { 'a', 'b', 'c' };
void work(char arr[], int i) {
for (int j = 0; j <= 2; j++) {
if (i <= 2) {
arr[i] = val[j];
}
while (i <= 2) {
i = i + 1;
if (i <= 2) {
work(arr, i);
System.out.println(new String(arr));
}
}
}
}
public static void main(String args[]) {
Brute b = new Brute();
char arr[] = new char[] { 'p', 'q', 'r' };
b.work(arr, 0);
}
}
的输出是:
aaa
aaa
aaa
我不明白为什么它给了我这个输出,而不是所有的组合。
为什么你会初始化'arr'为'{ 'P', 'Q', 'R'}',因为要置换的数组实际上是'{ 'A', 'B', 'C'} '? –
仅用于调试目的,以便我知道arr []实际上正在修改。 –