zoukankan      html  css  js  c++  java
  • 八皇后问题

    #include<iostream>
    using namespace std;
    /*************用数组下标保存行号,数组内容保存列号********************/
    bool judge(int a[],int n)
    {
        int k=a[n]+n;
        int j=a[n]-n;
        for(int i=0;i<n;i++)
        {
            if(a[i]==a[n])
                return false;
            if(k==a[i]+i)
                return false;
            if(j==a[i]-i)
                return false;
        }
        return true;
    }
    void output(int a[],int n)
    {
        for(int i=0;i<n;i++)
            cout<<a[i];
        cout<<endl;
    }
    /*************a为棋盘状态,i为当前行数,n为棋盘大小************************/
    void Trial(int a[],int i,int n)
    {
        if(i>=n)
            output(a,n);
        else
        {
            for(int j=0;j<n;j++)
            {
                a[i]=j;
                if(judge(a,i))
                    Trial(a,i+1,n);
            }
        }
    }

    int main()
    {
        int a[8];
        Trial(a,0,8);
        return 0;
    }

  • 相关阅读:
    singleton 单例模式
    try catch finall 结构里的 return
    ConcurrentHashMap
    ConcurrentHashMap原理分析
    Java 实现两个整数变量的交换
    Java reflect 反射 3 Class.forname
    Java reflect 反射 2
    Java reflect 反射 1
    java class load 类加载
    HashMap源码解析
  • 原文地址:https://www.cnblogs.com/hutao886/p/4502305.html
Copyright © 2011-2022 走看看