日期:2014-05-20  浏览次数:20717 次

求助!!java组合的问题,用了arraylist
输入一个n 和 k 求 从n个字母中挑出k个字母的所有组合
没有编译错误,但是没有输出 为甚阿??
是不是arrList出错了?


代码如下:
import java.util.Scanner;
import java.util.ArrayList;

public class test{
       public static void main(String[] args) {

         Scanner input = new Scanner(System.in);
         System.out.print("Length");
         int n = input.nextInt();

         int k = input.nextInt();
         char arrinput[] = new char [n] ;
         int num = 0;
         for (char i = 'A'; num <= n - 1 ; i++){  // 生成含n个字母的数组
         arrinput[num] = i;
         num++;
         }
      
         char[][] arr = combinations(arrinput, k);
         
         for (int i = 0; i < arr.length; i++) 
         {
             for (int j = 0; j < arr[i].length; j++)
             System.out.print(arr[i][j] + " ");
            System.out.print("  ");
         }
       }
    /**
     * @param charArray 输入的数组
     * @param k    选取的个数
     */
       
       public static char[][] combinations(char[] charArray, int k) {
         ArrayList<char[]> arrList = new ArrayList<char[]>();
         int record[] = new int[k];
         int n = charArray.length;
         combination(record, charArray, n, k, 0, 0);

         char[][] combinationsArr = new char[arrList.size()][k];
         for (int i = 0; i < arrList.size(); i++)
         {combinationsArr[i] = arrList.get(i);}
         return combinationsArr;
       }
     /**
     * @param record      记录组合序列数组
     * @param charArray   记录组合序列数组
     * @param n           长度