输出自然数1输出自然数1到n所有不重复的排列,即n的全排列。到n所有不重复的排列,即n的全排列。
package n的全排列;
import java.util.Scanner;
/**
* @author admin
*/
public class Main {
static int n;
static int path[] = new int[99]; //存储一种可行的方案
static int state[] = new int[99]; //判断是否被用过 true为被用过 flase为没有
static void dfs(int u) {
if (u == n) { // 当u == n 时一种方案找到完毕输出
for (int i = 0; i < n; i++) {
System.out.print(" "+path[i]);
}
System.out.println();
return;
}
for (int i = 1; i <= n; i++) {
if (state[i]==0) {
path[u] = i; //在第u个位置存入i
state[i] = 1; // 在第u个位置 把i用掉了
dfs(u + 1); //寻找第u+1个位置
state[i] = 0; //一种方案寻找完毕,恢复现场
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
dfs(0);
}
}