鱼C论坛

 找回密码
 立即注册
查看: 2036|回复: 0

[技术交流] N皇后递归代码

[复制链接]
发表于 2019-4-6 21:58:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
#include <cstring>
#define N 15
using namespace std;
int table[N] = {0};
int count = 0;

//x行, y列
bool check(int x, int y)
{
    //行不用检察
    for(int i=0; i<x; i++)
    {
        if(table[i] == y)
            return false;
        
        if(table[i]+i == x+y)
            return false;
        
        if(table[i]-i == y-x)
            return false;
    }
    return true;
}

void dfs(int col, int n)
{
    if(col == n)
    {
        count++;
        return;
    }
    for(int i = 0; i<n; i++)
    {
        if(check(col, i))
        {
            table[col] = i;
            dfs(col+1, n);
            //table[col] = 0;
        }
    }
}

int main(){
    int n;
    cin >> n;
    dfs(0, n);
    cout << count << endl;

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 13:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表