回溯算法C语言

本文介绍了回溯算法的应用,重点讨论了八皇后问题的解决方案。通过使用回溯和递归思想,判断棋盘上每个位置是否能放置皇后,以避免皇后互相攻击。文章分享了解决该问题的总代码。
摘要由CSDN通过智能技术生成

回溯算法1

其最著名的问题便是八皇后问题将八位皇后放在一张8x8的棋盘上,使得每位皇后都无法吃掉别的皇后,(即任意两个皇后都不在同一条横线,竖线和斜线上),问一共有多少种摆法。

之前被误导走了好多弯路唉不说了说多了都是泪

八皇后问题最为困难的就是下一个皇后位置判断和返回而这便涉及回溯算法和递归思想:

void chess(int Queen[8][8],int n,int a)//放置皇后并进入下一个皇后的放置
{
   
	int i, j, col;
 	for (col = 0; col < n; col++)
 	{
   
  		if (Queen[a][col] == 1)
 		{
   
 		   if (check(Queen, a, col, n))
 		   {
   
 		   	Queen[a][col] = 2;
    			if (a < n - 1)
     			chess(Queen, n, a + 1);
    			else if(a==n-1)
    			count++<
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值