网站上有一些类似的问题有所帮助,但我不能完全确定这个问题,所以我希望这不是重复的。
这是一个家庭作业,您有一组字符 [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 的排列。我已经尝试了所有我能想到的,并仔细研究了谷歌搜索结果,我对自己无法解决看似相当简单的问题感到恼火。