专题二 1020
来源:互联网 发布:看图片的软件 编辑:程序博客网 时间:2024/06/12 03:39
一、题目编号:
1020
二、简单题意:
给出N,求所有由1-N组成的首位为1环形序列,要求相邻两数的和为素数。
1020
二、简单题意:
给出N,求所有由1-N组成的首位为1环形序列,要求相邻两数的和为素数。
三、解题思路形成过程
这道题非常类似于N皇后问题,使用的是深度优先搜索方法。按照从小到大的搜索顺序搜索后的结果就是符合输出顺序的。
这道题非常类似于N皇后问题,使用的是深度优先搜索方法。按照从小到大的搜索顺序搜索后的结果就是符合输出顺序的。
四、感想
要注意细节问题,空格空行需要谨慎。
要注意细节问题,空格空行需要谨慎。
五、AC代码
#include<stdio.h>
#include<math.h>
int a[25];
bool use[25];
int n;
bool isprime(int num){
int i;
for(i=2;i<=sqrt(num+0.0);i++){
if(num%i==0)
return false;
}
return true;
}
#include<math.h>
int a[25];
bool use[25];
int n;
bool isprime(int num){
int i;
for(i=2;i<=sqrt(num+0.0);i++){
if(num%i==0)
return false;
}
return true;
}
void DFS(int num){
int i;
if(n==num&&isprime(1+a[n-1])){
for(i=0;i<n;i++){
printf(i==n-1?"%d\n":"%d ",a[i]);
}
}
else{
for(i=2;i<=n;i++){
if(!use[i]&&isprime(i+a[num-1])){
a[num]=i;
use[i]=true;
DFS(num+1);
use[i]=false;
}
}
}
}
int i;
if(n==num&&isprime(1+a[n-1])){
for(i=0;i<n;i++){
printf(i==n-1?"%d\n":"%d ",a[i]);
}
}
else{
for(i=2;i<=n;i++){
if(!use[i]&&isprime(i+a[num-1])){
a[num]=i;
use[i]=true;
DFS(num+1);
use[i]=false;
}
}
}
}
void init(){
int i;
for(i=0;i<n;i++){
use[i]=false;
}
a[0]=1;
}
int main(){
int t=0;
while(scanf("%d",&n)!=EOF){
init();
printf("Case %d:\n",++t);
DFS(1);
puts("");
}
}
int i;
for(i=0;i<n;i++){
use[i]=false;
}
a[0]=1;
}
int main(){
int t=0;
while(scanf("%d",&n)!=EOF){
init();
printf("Case %d:\n",++t);
DFS(1);
puts("");
}
}
0 0
- 专题二 1020
- 专题二1020
- 2016sdau课程练习专题二 1020
- 3G专题二
- LDAP专题(二)
- 毕业论文专题 (二)
- IPV6专题(二)
- 专题二-可复用单链表
- 专题二 · 1009
- 专题二1001
- 专题二1002
- 专题二1005
- 专题二 1001
- 专题二:搜索总结报告
- 专题二1008
- 专题二 · 1008
- 专题二1019
- 专题二 1008
- 【Leetcode】:318. Maximum Product of Word Lengths 问题 in JAVA
- java程序中java对象存储和内存分配的原理?
- LeetCode 71. Simplify Path
- 不翻墙,利用国内源下载Android 源码
- Exercise(2):最大连续子序列和
- 专题二 1020
- Jsonp手机号查询Jquery格式
- hdu 2686(多线程dp)
- 立方尾不变
- React的优缺点
- leetcode——330——Patching Array
- 蚂蚁爬竹竿问题
- 稀疏自编码器一览表
- Exercise(3):最少硬币问题