码迷,mamicode.com
首页 > 其他好文 > 详细

素数环——搜索与回溯

时间:2015-05-03 17:26:00      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 Description
从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。
 输入输出格式 Input/output
输入格式:
无输入
输出格式:
一个整数(第几号素数环),一列数字(表示这个素数环)
 输入输出样例 Sample input/output
样例测试点#1
输入样例:
输出样例:
这里就不演示了(…)
思路:代码很清楚,此处无需讲~~
代码如下:
 1 #include <stdio.h>
 2 #include <math.h>
 3 int a[30]={0};
 4 int b[30]={0};
 5 int zongshu=0;
 6 int k; 
 7 int zhishu(int x,int y)//判断质数函数 
 8 {
 9     int k=2,i=x+y;
10     while(k<=sqrt(i)&&i%k!=0) k++;
11     if(k>sqrt(i)) return 1;
12        else return 0;
13 }         
14 int shuchu()//输出函数 
15 {
16     int i;
17     printf("No.%d  ",zongshu++);
18     for(i=0;i<20;i++)
19     {
20         printf("%d ",a[i]);
21     }
22     printf("\n");
23 }
24 int kk(int p)
25 {
26     int i;
27     for(i=1;i<=20;i++)
28     {
29         if((zhishu(a[p-1],i)&&(!b[i]))==1)//符合条件            
30         {
31              a[p]=i;
32              b[i]=1;
33              if(p==20) 
34                { 
35                     if(zhishu(a[20],a[1]))//判断首尾是否能相接,为真,输出 
36                  {
37                      shuchu();//是的话,输出即可 
38                   }                                
39               }
40              else kk(p+1);//否则,下一个。。。 
41              b[i]=0;//还原场景 
42         }
43     }   
44 }         
45 int main()
46 {
47     kk(1);
48     printf("%d\n",zongshu);
49     return 0;
50 }

 

素数环——搜索与回溯

标签:

原文地址:http://www.cnblogs.com/geek-007/p/4474208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!