CodeVs 1295 N皇后問題

題目大意:ios

http://codevs.cn/problem/1295/spa

 

代碼:code

#include <iostream>
#include <cmath>

using namespace std;

int n;
int arr[15] = {0};
int count = 0;

bool canPos(int x)
{
    for(int i = 1; i < x; i++)
    {
        if(arr[i] == arr[x] || abs(arr[i]-arr[x]) == abs(x-i))
            return false;
    }
    return true;
}

void dfs(int x)
{
    if(x == n+1)
    {
        count++;
    }
    for(int i = 1; i <= n; i++)
    {
        arr[x] = i;
        if(canPos(x))
            dfs(x+1);


    }
}


int main()
{
    cin >> n;

    dfs(1);

    cout << count << endl;
    return 0;
}
相關文章
相關標籤/搜索