编程java和python,java程序员学python

  编程java和python,java程序员学python

  描述:在一个从1到N的N整数周围,添加任意两个相邻的数字。如果所有的结果都是素数,那么这个环就是素数环。

  分析:用回溯算法检查所有可能的序列。然后根据剪枝(题目中的条件)筛选出可能的排列并输出。

  包com.sa mudra.back跟踪;

  导入Java . util . scanner;

  班主任ing {

  静态输入n;

  输入一个[];静态;

  静态计数;

  publicstaticvoidmain(string[]args){

  sannerin=new scanner(system . in;

  n=in . nextint(;

  count=0;

  a=new int[n 1];

  init(;

  如果())N1)!=0}{

  System.out.println(没有符合要求的方案!);

  }否则{

  搜索(1);

  if(count==0)

  System.out.println(没有符合要求的方案!);

  }

  }

  公共语音初始化(

  for(intI=0;我

  a[I]=I;

  }

  }

  publicstaticvoidsearch{

  int I;

  当检索到if(Mn )//叶节点时

  {

  if(is prime(a[1]a[n]))/if a[1]a[20]是素数

  出;

  打印结果(;//输出当前解决方案

  }

  }

  其他

  {

  for(I=m;I=n;我//(和木))。

  {

  swap(m,I);切换a[m]和a[i]

  if()m-1)==0 is prime(a[m]a[m-1]))判断a[m-1] a[m]是否为素数

  搜索(m1;//递归查找下一个位置

  swap(m,I);切换a[m]和a[i]

  }

  }

  }

  publicstaticvoidswap(intm,int i ) {

  int tmp=a[m];

  a[m]=a[I];

  a[I]=tmp;

  }

  publicstaticbooleanisprime {

  int I;

  for(I=2;i * i=numI ) {

  if(num%I==0))))))).

  假的;

  }

  返回true

  }

  公共状态无效打印结果

  System.out.print(这是第一个“计数”方案:);

  for(intI=1;I=n;I ) {

  system . out . print(a[I]);

  }

  system . out . println(;

  }

  }添加一个链接其他人的非递归java实现:

  33558 cn.com/article/p-carszxzb-ez.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: