题目

解决代码及点评


/************************************************************************/
/* 85. 相邻数之和为素数。
将1,2,3,4,... ,19,20这20个自然数排成一圈,使每两个相邻数之和都为素数。问这20个数应如何排列?
这道题和字符串全排列有些类似
不同的是要加判断素数条件
这道题和字符串全排列有些类似
不同的是要加判断素数条件
因为数字较小所以把1-40的素数都排到一起了 */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
void swap85(int& a,int& b)
{
int tmp = a;
a = b;
b = tmp;
}
bool IsAPrime85(int n)
{
static int prime[]={2,3,5,7,11,13,17,19,23,29,31,37};// 0-40以内的素数
for(int i=0;i<sizeof(prime)/sizeof(prime[0]);i++) if( n==prime[i] )
{
return true;
}
return false;
} int thearr[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
void print_it85(int n,int arr[])
{
static int cnt = 0;
printf("%04d : ",++cnt);
for(int i=0;i<n;i++)
printf("%2d ",arr[i]);
printf("\n");
}
void MySuShu85(int n,int time)
{
if( time==n )
{
if( IsAPrime85(thearr[0]+thearr[n-1]) ) print_it85(n,thearr);
return;
}
else
{
for(int i=time;i<n;i++ ) if( IsAPrime85(thearr[time-1]+thearr[i]) )
{
swap85(thearr[time],thearr[i]);
MySuShu85(n,time+1);
swap85(thearr[time],thearr[i]);
}
}
} void main()
{
MySuShu85(20,1);
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






基于visual Studio2013解决C语言竞赛题之1085相邻之和素数的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  2. 基于visual Studio2013解决C语言竞赛题之0520相邻元素

          题目

  3. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

  4. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  5. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  6. 基于visual Studio2013解决C语言竞赛题之0201温度转换

    题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...

  7. 基于visual Studio2013解决C语言竞赛题之0407最大值最小值

      题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...

  8. 基于visual Studio2013解决C语言竞赛题之0406数列求和

      题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...

  9. 基于visual Studio2013解决C语言竞赛题之0405阶乘求和

      题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...

随机推荐

  1. Python之路Day7

    第7天主要是面向对象的内容. 学到现在越来越吃力了,从上节课开始博客就没时间写了,看看别人写的博客都那么棒.又想起了那句话比你牛逼的人都在努力,你却在放羊...唉,我写作业的效率有点低,以后得抓紧时间 ...

  2. USACO Palindromic Squares 【STL__string_的应用】

    这里有个讲解 string 用法非常详细的博文:https://www.byvoid.com/zhs/blog/cpp-string 题目意思很简单啦,就是找回文 使用string可以高速A过 Sou ...

  3. django cookie

    设置:auth.login(request, user)                response = HttpResponseRedirect(reverse("index" ...

  4. 基于visual Studio2013解决C语言竞赛题之0514单词统计

     题目 解决代码及点评 /************************************************************************/ /* 14. 有一行字 ...

  5. 一起学习CMake – 02

    本节介绍如何用CMake来设置软件的版本号 在<一起学习CMake - 01>中我们看到了如何用CMakeLists.txt来构建一个最简单的工程,这一节里我们一起来看看如何用CMake对 ...

  6. Flowers(二分水过。。。)

    Flowers Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  7. Hadoop伪分布式模式部署

    Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...

  8. Google出品的自动Web安全扫描程序 Skipfish 下载及安装使用方法

    Skipfish是由google出品的一款自动化的网络安全扫描工具,该工具可以安装在linux.freebsd.MacOS X系统和windows(cygwin). 谷歌工程师Michal Zalew ...

  9. JVM调优总结(十一)-反思

    垃圾回收的悖论 所谓“成也萧何败萧何”.Java的垃圾回收确实带来了很多好处,为开发带来了便利.但是在一些高性能.高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈.目前JDK的垃圾回收算法,始终 ...

  10. Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践

    在撰写这一系列文章的过程中,我总结出了很多最佳实践.在这篇文章中,我介绍了在保护您的WindowsAzure应用程序时需要考虑的更多事项. 下面是一些工具和编码提示与最佳实践: · 在操作系统上运行 ...