小编use*_*424的帖子

在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);    
}
Run Code Online (Sandbox Code Playgroud)

但是,参数n应该定义输出的长度,所以虽然这个函数打印出长度为3的所有排列,但它不能用长度为2的那些.我已经尝试了我能想到的一切,并且仔细研究了谷歌的搜索结果,而且我因为无法解决看似简单的问题而感到恶心.

java arrays recursion permutation

9
推荐指数
1
解决办法
7876
查看次数

标签 统计

arrays ×1

java ×1

permutation ×1

recursion ×1