博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EOJ 1114 素数环
阅读量:5283 次
发布时间:2019-06-14

本文共 1167 字,大约阅读时间需要 3 分钟。

 题意

一个由自然数 1…n (n≤18) 素数环就是如下图所示,环上任意两个节点上数值之和为素数。

   1

  / \
   4  2
  \ /
     3

Input

输入只有一个数 n,表示你需要建立一个 1…n 的素数环。

Output

按照字典序输出每一种情况。我们约定顺时针为正向,且第一个元素必须是 1。

 


 

 

1 #include 
2 #include
3 int state[19],out[19]={
0,1}; 4 int primelist[12]={
2,3,5,7,11,13,17,19,23,29,31,37}; 5 int num; 6 int isprime(int n) 7 { 8 for(int i=0;i<12;i++) 9 if(primelist[i]==n) return 1;10 return 0;11 }12 void bt(int n)13 {14 static int j=1,k;15 int i;16 if(n==1)17 if(isprime(out[1]+out[num]))18 {19 for(k=1;k<=num;k++)20 printf("%d ",out[k]);21 printf("\n");22 }23 24 for(i=(out[j]+1)%2+2;i<=num;i+=2)25 {26 if(state[i]==1) continue;27 if(isprime(out[j]+i))28 {29 out[++j]=i;30 state[i]=1;31 bt(n-1);32 j--;33 state[i]=0;//back34 }35 }36 37 }38 int main()39 {40 scanf("%d",&num);41 int n=num;42 if(n%2==0) bt(n);43 return 0;44 }

 

state数组记录数是否已经被取用,已取过的就不取。

回溯,注意递归的结束条件,以及递归返回的时候能够返回之前的状态

 

转载于:https://www.cnblogs.com/Jiiiin/p/8605185.html

你可能感兴趣的文章
Thymeleaf:访问Spring中的bean
查看>>
php中自己定义错误类型,包括致命错误(Fatal Error 或 E_ERROR)
查看>>
下载的chm文件打不开?
查看>>
Art of WCF 2,设计与实现服务协定
查看>>
C#面向对象模式设计第二十一讲:Memento 备忘录模式(行为型模式)
查看>>
重载操作符 'operator'
查看>>
Capjoint的merrcmd生成二次曲线的misfit原理
查看>>
关于退集训队的小打算
查看>>
iOS UILabel自适应
查看>>
Linux——Centos 7 ls命令
查看>>
dict.get()
查看>>
Process Explorer
查看>>
git将本地已经存在的分支和一个指定的远端分支建立映射关系
查看>>
VirtualBox 给虚拟机绑定IP
查看>>
[转载]async & await 的前世今生
查看>>
ubuntu 12.04 JDK和JVM配置,浏览器执行Applet
查看>>
【转】hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题...
查看>>
分享35个讨人喜欢的漂亮进度条UI设计
查看>>
Visual Studion 2013 HTML 如何打开设计图
查看>>
TensorFlow 卷积神经网络--卷积层
查看>>