素数环 题解

题目:

素数环:

从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数



算法分析:

显然,这道题用回溯算法再好不过了,从1开始,每个空位有20种可能,只要填进去的数合法,与前面的数不同;与左边相邻的数是一个素数。

其中,第20个数还要判断和第1个数的和是否是素数(显而易见)


流程:

step1:数据的初始化

step2:递归填数,判断是否合法

1.如果合法,填数;判断是否达到目标,是则打印结果,不是,递归填下一个数

2.如果不合法,选择下一种可能性



#include
#include
#include
#include
using namespace std;

bool b[21]={0};
int total=0,a[21]={0};
int search(int);
int print();
bool pd(int,int);


int main()
{
	search(1);
	cout<";
	for(int j=1;j<=20;j++)
		cout

你可能感兴趣的:(题解)