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 常用命令全集
    Boost简介
    postgresql命令行
    Ncurses 命令行图形库
    rsync ssh文件同步
    BusyBox参考
    screen命令
  • 原文地址:https://www.cnblogs.com/calmwithdream/p/5317230.html
Copyright © 2011-2022 走看看