本文共 1057 字,大约阅读时间需要 3 分钟。
A ring is composed of n (even number) circles as shown in diagram. Put natural numbers 1,2,...,n into each circle separately, and the sum of numbers in two adjacent circles should be a prime. Note: the number of first circle should always be 1.
n (0 < n ≤ 16)
The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements. You are to write a program that completes above process.
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#include #include #include #include using namespace std;int n;int pri[35];int vis[20];int ans[20];void judge(){ for (int i=2;i<35;i++) { if(!pri[i]) { for (int j=2*i;j<35;j+=i) pri[j]=1; } }}void dfs (int num){ if(num==n) { for (int i=0;i
转载地址:http://dwoen.baihongyu.com/