输入1个数,打印出它的全排列

输入3,打印出123,132,213,231,312,321

看看我这个符合你要求不。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Temp {
static int num = 0;
private static List<Integer> a = new ArrayList<Integer>();
private static List<Integer> b = new ArrayList<Integer>();

public static void sort(List<Integer> sort, List<Integer> sorted) {
if (sorted.size() == num) {
for (Object obj : sorted)
System.out.print(obj);
System.out.println();
return;
}
for (int i = 0; i < sort.size(); i++) {
List newDatas = new ArrayList(sort);
List newTarget = new ArrayList(sorted);
newTarget.add(newDatas.get(i));
newDatas.remove(i);
sort(newDatas, newTarget);
}
sorted.addAll(sort);

}

public static void main(String[] args) {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String tmp = null;

int x;

while (true) {
System.out
.println("\nPlease input one int number![1,2,3,4,5,6,7,8,9])");
System.out.println("Type 'exit' to quit!;");
try {
tmp = bf.readLine();
if ("exit".equals(tmp))
break;
num = Integer.parseInt(tmp);
for (int i = 0; i < num; i++) {

a.add(i + 1);
}
sort(a, b);

} catch (IOException e) {
e.printStackTrace();
} finally {
a.clear();
b.clear();
}
}

}

}

这个程序拷到你的环境下直接运行就好。
温馨提示:答案为网友推荐,仅供参考
相似回答