重提八皇后问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjm850552586/article/details/79594436

之前有篇文章写了八皇后问题,近来重写时觉得有所简便,便再铺上个新代码。
如果对八皇后问题不了解的可以翻阅我之前的文章
下面铺上代码供浏览进来的小可爱参考~

#include<iostream>
#include<math.h>
using namespace std;
int loc[8];
int sum=0;
int judge(int row,int col)
{
    int i;
    for(i=0;i<=col-1;i++)
        if(loc[i]==row||abs(loc[i]-row)==col-i)
            return 0;
    return 1;
}

void push(int col)
{
    int row;
    if(col==8)
    {
        sum++;  
        return;
    }
    for(row=0;row<8;row++)
    {
        if(judge(row,col))
        {
            loc[col] = row;
            push(col+1);
        }
    }
    return;
}

int main()
{
    int i;
    for(i=0;i<8;i++)
    {
        loc[0]=i;
        push(1);
    }
    cout<<sum;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/xjm850552586/article/details/79594436
今日推荐