网站上有一些类似的问题有一些帮助,但我无法完全确定这个问题,所以我希望这不是重复的。在Java中使用重复排列数组,重复使用
这是一个家庭作业,你有一组字符集[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的搜索结果感到厌倦,而且我自己也因为无法解决似乎是一个相当简单的问题而感到恼火。
什么是 “有重复” 的意思是在这里吗? – seh
这只是意味着一旦使用了一个字符,它就可以再次使用。所以可能的输出数是3^3,而不是3 !. – user1788424