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

hd1016

时间:2016-02-16 20:31:08      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <cstring>
using namespace std;
bool prime[41]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0};
int vis[25];
int a[25];

int n;
int p=1;
void dfs(int num)
{
    if(num==n&&prime[a[num-1]+a[0]])
    {

        cout<<a[0];
        for(int i=1;i<n;i++)
            cout<<" "<<a[i];
        cout<<endl;
    }
    else
    {
        for(int i=2;i<=n;i++)
        {
            if(!vis[i]&&prime[a[num-1]+i])
            {
                vis[i]=1;
                a[num]=i;
                dfs(num+1);
                vis[i]=0;
            }
        }
    }
}
int main()
{
    while(cin>>n)
    {
        memset(vis,0,sizeof(vis));
        cout<<"Case "<<p++<<":"<<endl;
        a[0]=1;
        dfs(1);
        cout<<endl;
    }
    return 0;
}

代码如上 就是一个理解 怎么输出的顺序问题 

hd1016

标签:

原文地址:http://www.cnblogs.com/luosuo10/p/5193718.html

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