N皇后问题【递归求解】

简介: n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。 输入一个正整数N,则程序输出N皇后问题的全部摆法。输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该放在第n列。

n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。

输入一个正整数N,则程序输出N皇后问题的全部摆法。
输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该放在第n列。
皇后的行、列编号都是从1开始算。
样例输入:
4
样例输出:
2 4 1 3
3 1 4 2 14

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4 
 5 int N;
 6 int queenPos[100];//用来存放算好的皇后位置。最左上角是(0,0)
 7 
 8 void NQueen( int k);
 9 
10 int main()
11 {
12     cin >> N;
13     NQueen(0); //从第0行开始摆皇后
14     return 0;
15 }
16 void NQueen( int k) //在0~k-1行皇后已经摆好的情况下,摆第k行及其后的皇后
17 { 
18     int i;
19     if( k == N ) // N 个皇后已经摆好
20     { 
21         for( i = 0; i < N;i ++ )
22             cout << queenPos[i] + 1 << " ";
23         cout << endl;
24         return ;
25     }
26     for( i = 0;i < N;i ++ )//逐一尝试第k个皇后所在的列i. 
27     { 
28         int j;
29         for( j = 0; j < k; j ++ ) 
30         {
31             //和已经摆好的 k个皇后的位置比较,看是否冲突
32             //queenPos[j] == i表示第j个皇后所在的列queenPos[j]与第k个皇后所在的列i相等
33             //abs(queenPos[j] - i) == abs(k-j)表示第k个皇后和第j个皇后在同一个斜线(行之差与列之差绝对值相等) 
34             if( queenPos[j] == i || abs(queenPos[j] - i) == abs(k-j)) 
35             {
36                 break; //冲突,则试下一个位置
37             }
38         }
39         if( j == k )  //当前选的位置 i 不冲突
40         {
41             queenPos[k] = i; //将第k个皇后摆放在第i列 
42             NQueen(k+1);
43         }
44     } //for( i = 0;i < N;i ++ )
45 }

 

相关文章
|
uml 数据可视化
|
12天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11438 122
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
2天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
3357 8
|
1天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1314 2
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
12天前
|
人工智能 IDE API
2026年国内 Codex 安装教程和使用教程:GPT-5.4 完整指南
Codex已进化为AI编程智能体,不仅能补全代码,更能理解项目、自动重构、执行任务。本文详解国内安装、GPT-5.4接入、cc-switch中转配置及实战开发流程,助你从零掌握“描述需求→AI实现”的新一代工程范式。(239字)
7407 139
|
2天前
|
云安全 供应链 安全
Axios投毒事件:阿里云安全复盘分析与关键防护建议
阿里云云安全中心和云防火墙第一时间响应
1141 0
|
3天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
2天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2128 9