本文主要是介绍2013蓝桥杯真题 金蝉素数(DFS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
源代码(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就是了
这篇关于2013蓝桥杯真题 金蝉素数(DFS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!