解题思路:
注意事项:
参考代码:
import java.math.BigInteger; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static int m; public static int sum=0; public static int[] arr=new int[21]; public static int[] vis=new int[21]; public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ m=sc.nextInt(); DFS(0); System.out.println(sum); sum=0; } } public static void DFS(int n){ if(n==m){ int flag=0; for(int i=0;i<m;i++){ if(arr[i]==i){ flag=1; break; } } if(flag==0){ sum++; } } else{ for(int i=0;i<m;i++){ if(vis[i]==0){ vis[i]=1; arr[n]=i; DFS(n+1); vis[i]=0; } } } } }
0.0分
0 人评分
C语言训练-计算1977!* (C语言代码)浏览:890 |
Biggest Number (C++代码)回溯法浏览:1612 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:896 |
【蟠桃记】 (C语言代码)浏览:1021 |
1050题解(结构体数组与结构体指针的使用)浏览:1105 |
一元一次方程 (C语言代码)浏览:4058 |
陶陶摘苹果2 (C语言代码)浏览:595 |
多输入输出练习2 (C语言代码)浏览:1655 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:762 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:440 |