当前位置: 首页 > news >正文

回溯法-N皇后

1.非递归方法

#define N 4 int q[N + 1]; //检查当前皇后与前i个有没有冲突 int check(int j) { int i; for (i = 1; i < j; i++) { //不在一个行 不在一个斜线上 至于不在一行,for循环条局的i<j已经有的判断 if (q[i]==q[j] || abs(i-j) == abs(q[i]-q[j])) { return 0; } } return 1; } void queen() { int i; //初始 for (i = 1; i <= N; i++) { q[i] = 0; } //方案数 int answer = 0, j = 1; while (j >= 1) { q[j] = q[j] + 1;//踏入第一行第一个各自,上道,从1开始 while (q[j] <= N && !check(j))//不越绝+检查有问题 { //则代表当前q[j] = q[j] + 1的上道有问题,则继续+1 q[j] = q[j] + 1; } //出来代表当前皇后与前面的N皇是不冲突的,但是越界需要判断一下 if (q[j] <= N) { if (j == N)//代表当前走到最后一行,即有一种方案了 { answer = answer + 1; printf("方案%d\n", answer); for (i = 1; i <= N; i++) { printf("%d ", q[i]); } printf("\n"); } else { j = j + 1;//如果不是j == N,代表下面还有行需要走,这里的j不是代指列,是当前走到的行 } } else { q[j] = 0;//回溯回去,当前行的j皇走的失败路线要重置 j = j - 1;//回溯上去第j-1个皇后 } } } int main() { queen(); return 0; }

2.递归求解方法

void queen(int j)//当前行的的摆放皇后 { int i; for (i = 1; i <= N; i++) { q[j] = i; if (check(j)) { if (j == N) { answer = answer + 1; printf("方案%d\n", answer); for (i = 1; i <= N; i++) { printf("%d ", q[i]); } printf("\n"); } else { queen(j + 1); } } } }
http://www.gsyq.cn/news/1452183.html

相关文章:

  • 基于STM32F407的单通道便携示波器源码:支持继电器程控增益、LCD实时波形显示与串口数据导出
  • 苏州大学与阿里云计算联手:用“技能手册“让AI情感陪护员越练越强
  • 拒绝安全审计背锅:GitHub Actions 自动化漏洞排查与合规修复实战
  • 从Stable Diffusion到Sora:一文读懂DiT中的adaLN-Zero如何成为扩散模型的新宠
  • 批量查公司员工LinkedIn公开资料的Python工具包
  • 别再傻傻输验证码了!用BurpSuite Intruder模块,5分钟搞定登录表单的批量测试
  • 别再只会画流程图了!用Visio画电路图和波形图的保姆级教程(附元件库)
  • 珠海市2026年黄金回收白银回收铂金回收门店指南 五家诚信店铺排行榜+联系方式电话推荐 - 大熊猫898989
  • Anthropic 融资 650 亿美元估值超 OpenAI,专注 coding 策略能否持续领先?
  • 曲面图像传感器:突破场曲瓶颈,重塑相机光学架构的未来
  • 株洲市2026年黄金回收白银回收铂金回收门店指南 五家诚信店铺排行榜+联系方式电话推荐 - 大熊猫898989
  • 手把手教你用Rviz和TF工具调试ROS机器人坐标系(附常见传感器配置)
  • 2026论文写作工具红黑榜:AI论文平台怎么选?这次终于选对了!
  • 保姆级教程:在Tina5.0 (Linux 5.4)内核中手动添加RTL8188FU驱动模块
  • 告别 apt-key:深入理解 Kali APT 安全策略与 ‘InRelease‘ 签名错误根治指南
  • 别再死记硬背了!用华为eNSP模拟器5分钟搞懂BGP的5种报文和6种状态机
  • 恒远科技十年磨一剑:用H4 OntoX定义工业级通用AGI引擎,引领工业AI新标准
  • 告别文档维护地狱:AI 驱动开源组件自动化文档流
  • C语言实战:从零实现猜数字小游戏
  • GD32E230点灯实战:除了gpio_bit_write,这些GPIO库函数你用对了吗?
  • LLaMA-Factory微调ChatGLM3-6B后,如何手动构建prompt模板并用vLLM推理(附完整代码)
  • 从堡垒机到特权治理:企业为何全面升级 PAM360
  • Typora破解2025最新版破解教程1.10.8
  • 实验复现失败率高达68%?一文拆解AI工具与实验管理深度整合的4个黄金接口
  • 别再手动截屏了!教你用YOLOv8分割模型(yolov8n-seg.pt)实现视频物体精准抠图与保存
  • 谷歌收录怎么查询?纯JS渲染的单页面,验抓取只需1招
  • 2026年薪酬设计指南:多少钱才能留住核心人才?
  • 汕尾市2026年黄金回收白银回收铂金回收门店指南 五家诚信店铺排行榜+联系方式电话推荐 - 大熊猫898989
  • 能区分说话人且转写准的录音 APP
  • 别再让大模型说‘我是AI’了:手把手教你用Qwen-14B打造专属‘数字员工’