重提八皇后問題
阿新 • • 發佈:2018-11-15
之前有篇文章寫了八皇后問題,近來重寫時覺得有所簡便,便再鋪上個新程式碼。
如果對八皇后問題不瞭解的可以翻閱我之前的文章
下面鋪上程式碼供瀏覽進來的小可愛參考~
#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;
}