这个网站上有一些类似的问题,对我有些帮助,但是我还是无法解决这个问题,所以希望这不是重复的。
这是一个作业任务,你需要一个字符集数组 [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的排列。我已经尝试了我所能想到的一切,并且详细阅读了Google搜索结果,但我为自己无法解决这个看起来相当简单的问题感到懊恼。