62,621
社区成员
发帖
与我相关
我的任务
分享
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Permutation {
private static int number = 0;
public Permutation(){
init();
}
public void permutation(int[] perm, int index){
if(index ==(number - 1)){
for(int i = 0; i < number; i++){
System.out.print(perm[i]);
}
System.out.println();
}else{
for(int j = index; j < number; j++){
swap(perm,index,j); //交换这两个数
permutation(perm,index+1);
swap(perm,index,j); //换回这两个数, 然后增加步长
}
}
}
public void swap(int[] perm, int first, int second){
int temp = perm[first];
perm[first] = perm[second];
perm[second] = temp;
}
public static void main(String[] args){
Permutation p = new Permutation();
int[] perm = new int[number];
for(int i = 0; i < number; i++){
perm[i] = i + 1;
}
p.permutation(perm,0);
}
private void init(){
while(true){
System.out.println("请输入一个小于9 的整数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
line = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
number = Integer.parseInt(line);
if(number >= 9){
System.out.println("输入的整数必须小于9");
}else{
break;
}
}
}
}