import java.util.Scanner; public class Main { public static final int[] prime = { 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }; public static boolean[] visited; public static int[] nums; public static int n; public static void dfs(int deepth,int current){ if(deepth == n ){ if(prime[current+1]==1){ for(int i=0;i<n;i++){ System.out.print( nums[i]); if(i+1!=n){ System.out.print( " " ); } } System.out.println( ); } } else { for(int i=2;i<=n;i++){ if(!visited[i] && prime[current+i]==1){ visited[i]=true; nums[deepth] = i; dfs(deepth+1,i); visited[i]=false; } } } } public static void main( String[] args ) { Scanner sc = new Scanner( System.in ); int c=1; while( sc.hasNext() ) { //在有不确定个测试数据时使用sc.hasNext(),在c++中使用while(cin>>n)。(n=sc.nextInt())==0是不行的 n = sc.nextInt(); nums = new int[ n+1 ]; visited = new boolean[ n+1 ]; nums[0]=1; System.out.println("Case "+c+":"); dfs(1,1); c++; System.out.println( ); } } }
HDU1016 借鉴
猜你喜欢
转载自www.cnblogs.com/lijiahui-123/p/12596602.html
今日推荐
周排行