• HDOJ_1016 素数环


    这个题还是用递归做的,就是一个一个深度遍历,条件合适时,就输出当前数组存储的の即可

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    int a[25],ben[25],n;
    int prime(int k)
    {
        int i;
        for(i=2;i<sqrt(k)+1;++i)
            if(k%i==0)
                return 0;
        return 1;
    }
    void print(int count)
    {
        int i;
        if(count==n&&prime(a[0]+a[n-1]))//当满足条件时就输出
        {
            for(i=0;i<n-1;++i)
                printf("%d ",a[i]);
            printf("%d\n",a[i]);
        }
        else
        {
            for(i=2;i<=n;++i)
            {
                if(!ben[i]&&prime(i+a[count-1]))//用ben做标记
                {
                    a[count]=i;
                    ben[i]=1;
                    print(count+1);
                    ben[i]=0;//用完后清除标记
                }
            }
        }
    }
    
    int main()
    {
        int T=1;
        a[0]=1;
        while(scanf("%d",&n)!=EOF)
        {
            memset(ben,0,sizeof(ben));
            printf("Case %d:\n",T++);
            print(1);
            printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    poj1703
    poj 2385
    poj 3169 差分约束
    poj3723 最大权森林
    POJ3255 次短路
    图论算法----最小生成树
    给linux操作系统安装中文环境
    Windows下使用python
    pku3668 Game of Lines
    pku3670 Eating Together
  • 原文地址:https://www.cnblogs.com/zibuyu/p/2647200.html
Copyright © 2020-2023  润新知