import java.util.Scanner;
import java.math.BigDecimal;
public class dfs {
public static int []arr=new int[1000];
public static int []flag=new int[1000];//标志哪些数字已经被用
public static void dfs(int order,int d)
{
if(order==d+1)
{
for(int i=1;i<=d;i++)
System.out.print(arr[i]);
System.out.println();
return;
}
for(int i=1;i<=d;i++)
{
if(flag[i]==0)//如果该数字未被占用
{
arr[order]=i;
flag[i]=1;//将该数字的访问权限置为1
dfs(order+1,d);
flag[i]=0;//重新将该数字的访问权限置为0
}
}
}
public static void main(String[]args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入一个全排列数:");
while (in.hasNextInt())
{
int ans=in.nextInt();//接收输入的数字
System.out.println(ans+"的所有全排列如下:");
dfs(1,ans);
}
}
}
dfs全排列
最新推荐文章于 2023-06-28 23:26:19 发布