このサイトにはいくつかの同様の質問があり、役に立ちましたが、私はこの問題を完全に突き止めることができないので、これが繰り返されないことを願っています.
これは、一連の文字 [A、B、C] の配列があり、再帰を使用してすべての順列を (繰り返しで) 取得する必要がある宿題です。私が持っているコードはこれを行います:
char[] c = {'A', 'B' , 'C'};
public void printAll(char[] c, int n, int k) {
if (k == n) {
System.out.print(c);
return;
}
else {
for (int j = 0; j<n; j++) {
for (int m = 0; m<n; m++) {
System.out.print(c[k]);
System.out.print(c[j]);
System.out.print(c[m] + "\r\n");
}
}
}
printAll(c, n, k+1);
}
ただし、パラメーター n は出力の長さを定義する必要があるため、この関数は長さ 3 のすべての順列を出力しますが、長さ 2 の順列を実行することはできません。そして、かなり単純な問題のように見える問題を解決できないことで、私は自分自身に腹を立てています。