zoukankan      html  css  js  c++  java
  • JAVA之大数处理,有简单方法不用是sb

    #include<stdio.h>

    #include<iostream>

    using namespace std;

    #include<stdlib.h>

    int visit[30];//visit为标记数组

    int a[30];

    int n;

    int count;

    /*判断是否为素数*/

    int su(int x)

    {

        int i;

        for(i=2; i*i<=x; i++)

            if(x%i==0)

                return 0;

        return 1;

    }

    //深搜

    void dfs(int x,int y)

    {

        if(y==n+1)

        {

            if(su(x+1)==1)

            {

                count++;

                for(int i=1;i<=n;i++)

                    printf("%d ",a[i]);

                printf(" ");

            }

        }

        for(int i=2; i<=n; i++)

        {

            if(visit[i]==0&&su(x+i)==1) //x与其他没有遍历过的点进行比较判断

            {

                    visit[i]=1;//标记

                    a[y]=i;

                    dfs(i,y+1); //递归

                    visit[i]=0;//恢复现场

            }

        }

    }

    int main()

    {

        while(~scanf("%d",&n))

        {

            count=0;

            a[1]=1;

            visit[1]=1;

            dfs(1,2);

            cout<<count<<endl;

        }

        return 0;

    }

  • 相关阅读:
    闲置安卓设备搭建Linux服务器实现外网访问
    Flume笔记
    动态规划算法助记
    Hexo 添加Live2D看板娘
    Oracle 助记
    搭建Discuz论坛
    逆向工程(助记)
    PL/SQL Developer连接本地Oracle 11g 64位数据库
    NSOperation的基础
    GCD基础
  • 原文地址:https://www.cnblogs.com/calmwithdream/p/5317230.html
Copyright © 2011-2022 走看看