• 回溯1--素数环


    回溯2--素数环

    一、心得

    二、题目及分析

    素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。

    计算1-20这20个数形成的素数环.

    三、代码

     1 /*
     2 /*
     3 框架一 
     4 
     5 int search(int k){
     6     for(int i=1;i<=算法总数;i++){
     7         if(满足条件){
     8             保存结果
     9             if(到目的地) 输出解;
    10             else search(k+1);
    11             恢复:保存结果之前的状态(回溯一步) 
    12         }
    13     }
    14 } 
    15 
    16  3 都是在for下的if下的 
    17  4 保存结果,找下一步,回溯,这三个是一起的
    18  5 还有一个到达目的地输出解放在外面就好 
    19 
    20 
    21 search后面的k是轮数 
    22 
    23 三个数组:
    24 原数据数组
    25 标记数组
    26 储存结果数组
    27 
    28 
    29 
    30 框架二 到目的地的情况要多加1,因为满足了的下一轮就好判断 
    31 
    32 */
    33 #include <iostream>
    34 #include <cmath>
    35 using namespace std;
    36 
    37 
    38 
    39 /*
    40 三个数组:
    41 原数据数组
    42 标记数组
    43 储存结果数组 
    44 
    45 */ 
    46 bool b[21]={0};//标记数组 
    47 int total=0;
    48 int ans[21]={0};//储存结果数组 
    49 
    50 //判断是否为素数,并且加上1 
    51 bool pd(int x,int y){
    52     int k=2,i=x+y;
    53     while(k<=sqrt(i)&&i%k!=0) k++;
    54     if(k>sqrt(i)) return true;
    55     else return false;
    56 }
    57 
    58 //输出结果
    59 void print(){
    60     if(total==5) return ;
    61     total++;
    62     cout<<"<"<<total<<">"<<endl;
    63     for(int i=1;i<=20;i++){
    64         cout<<ans[i]<<" ";
    65     }
    66     cout<<endl;
    67 } 
    68 
    69 //回溯
    70 int search(int t){
    71     if(t==21&&pd(ans[20],ans[1])) print();//这里要多加一个1,因为是下一轮 
    72     else
    73         for(int i=1;i<=20;i++){
    74             if(pd(ans[t-1],i)&&!b[i]){
    75                 ans[t]=i,b[i]=1;
    76                 search(t+1);
    77                 b[i]=0;
    78             }
    79         }
    80      
    81 } 
    82 
    83 
    84  
    85 int main(){
    86     search(1);
    87     cout<<total<<endl;
    88     return 0;
    89 } 

  • 相关阅读:
    jenkins--部署项目
    jenkins--创建项目
    jenkins--安全配置
    jenkins--工具配置
    jenkins--系统配置
    11.17
    11.14
    11.13
    dfs
    10.31
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7119123.html
Copyright © 2020-2023  润新知