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 []實際上正在修改。 –