源代码(Java)
import java.util.*;
public class Main
{
static boolean isPrime(int n)
{
if(n<=1) return false;
for(int i=2; i*i<=n; i++){
if(n%i==0) return false;
}
return true;
}
static void f(int[] x, int k)
{
if(_____________________){
if(isPrime(x[0]*10000 + x[1]*1000 + x[2]*100 + x[3]*10 + x[4]) &&
isPrime(x[1]*100 + x[2]*10 + x[3]) &&
isPrime(x[2]))
System.out.println(""+x[0]+x[1]+x[2]+x[3]+x[4]);
return;
}
for(int i=k; i<x.length; i++){
{int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }
f(x,k+1);
{int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }
}
}
static void test()
{
int[] x = {1,3,5,7,9};
f(x,0);
}
public static void main(String[] args)
{
test();
}
}
该题不知为何只能用Java(我还不会),不过还是可以看得懂的,该题也是非常的眼熟啊
非常符合我们曾经总结过的dfs的模板啊(还不熟悉的同学块回去复习DFS(深度优先搜索算法)入门_ZZZWWWFFF_的博客-CSDN博客)
如果对dfs熟悉的同学应该一眼看出该空要我们填的就是dfs的出口
还是比较简单的直接k>=x.length就是了