博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rwkj 1422搜索(素数环)
阅读量:4632 次
发布时间:2019-06-09

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

  算法分析与设计:搜索(素数环)

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:178            测试通过:35

描述

 

将1-n这n个数摆成一个环,要求相邻的两个数的和是一个素数,编程输出所有可能的解。

 

输入

 

包括多组数据,每组1个数n。n<20

 

输出

 

所有可能的解。

输出格式见样例。

 

样例输入

6 8

样例输出

Case 1: 1 4 3 2 5 6

            1 6 5 2 3 4

Case 2: 1 2 3 8 5 6 7 4

            1 2 5 8 3 4 7 6

            1 4 7 6 5 8 3 2

            1 6 7 4 3 8 5 2

 

 

 

 

 

#include 
using namespace std;int a[20],n;int used[20];int is_prime(int x){ int i; for(i=2;i
>n) { memset(used,0,sizeof(used)); used[1]=1;a[1]=1; cout<<"Case "<
<<":"<
View Code

#include <iostream>

using namespace std;
int a[20],n;
int used[20];
int is_prime(int x)
{
int i;
for(i=2;i<x;i++)
if(x%i==0) return 0;
return 1;
}
void dfs(int cur)
{
int i;
if(cur==n&&is_prime(a[1]+a[n]))
{
for(i=1;i<n;i++) cout<<a[i]<<" ";
cout<<a[n]<<endl;
return ;
}
for(i=2;i<=n;i++)
{
if(is_prime(a[cur]+i)&&used[i]==0)
{
a[cur+1]=i;used[i]=1;dfs(cur+1);used[i]=0;
}
}
}
int main(int argc, char *argv[])
{
int c;
c=1;
while(cin>>n)
{
memset(used,0,sizeof(used));
used[1]=1;a[1]=1;
cout<<"Case "<<c++<<":"<<endl;
if(n%2==0)
dfs(1);
cout<<endl;
}
return 0;
}

 

 

 

 

 

转载于:https://www.cnblogs.com/2014acm/p/3903008.html

你可能感兴趣的文章
ZOJ 3735 dp
查看>>
android效果背景虚化
查看>>
jQuery效果:隐藏、显示、切换、滑动、淡入淡出、动画
查看>>
Java 学习笔记(4)——java 常见类
查看>>
IOS开源项目汇总
查看>>
用herl工具解决微信内链接或二维码可直接用外部浏览器打开
查看>>
GITHup的使用
查看>>
void main()是错的!
查看>>
Atitit. Attilax企业框架 AEF的发展里程总结
查看>>
亚麻 面经_ml
查看>>
豆瓣api
查看>>
SQL数据库无法附加 系统表损坏修复 数据库中病毒解密恢复
查看>>
JMeter的安装和使用
查看>>
Es5正则
查看>>
Unicode,UTF-32,UTF-16,UTF-8到底是啥关系?
查看>>
Git 版本还原命令
查看>>
【C#技术】一篇文章搞掂:Infragistics组件库
查看>>
记一次生产的bug
查看>>
ubuntu14.04上搭建android开发环境
查看>>
搭建nexus后,进入首页的时候出现warning: Could not connect to Nexus.错误
查看>>