题目要求如下: 给定一个字符串数组,数组中的元素各不相同,把一个数组里的“数组合”全部列出,比如1和2列出来为1,2,12,21.一共有4个“数组合” 输入描述: 第一行输入数为数组元素个数,第二行输入数组元素 输出描述: 给定的数组有多少个“数组合” 输入例子: 3 1 2 3 输出例子: 15 解题思路,本题可以考虑使用循环递归的算法: 以下代码仅供参考 import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Main{ static int index=0; public static void main(String[] args) { Scanner mScanner=new Scanner(System.in); int num=mScanner.nextInt(); List<String> array=new ArrayList<String>(); for (int i = 0; i < num; i++) { array.add(mScanner.next()); } listAll(array, ""); System.out.println(index-1); } public static void listAll(List list, String prefix) { index++; //if (list.isEmpty()) { // System.out.print(prefix+" "); //} int len = list.size(); for (int i = 0; i < len; i++) { List temp = new LinkedList(list); listAll(temp, prefix + temp.remove(i)); } } } 以上是Java递归求解数组里“数组合”的全文介绍,希望对您学习和使用java程序开发有所帮助.