鱼C论坛

 找回密码
 立即注册
查看: 2734|回复: 3

一个八皇后的问题(搜索回溯),跪求大神指出错误!

[复制链接]
发表于 2018-8-12 19:03:17 | 显示全部楼层 |阅读模式

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

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

x
理论答案应该有92种!我的只有2种,不懂哪里错了!











#include<iostream>
using namespace std;
int sum, a[8][8];
int pd(int x,int y )  // 判断x行y列是否可以放皇后 
{
        int i,j;
        for(i=0;i<x;i++)   // 判断头上是否有皇后 
        {
                if(a[i][y])
                return 0;
        }
        for(i=x-1,j=y-1;i>=0,j>=0;i--,j--)  //判断左上方 
        {
                if(a[i][j])
                return 0;
        }
        for(i=x-1,j=y+1;i>=0,j<8;i--,j++)  //判断右上方 
        {
                if(a[i][j])                   //因为是从上到下的放法 ,所以不需要判断左下方和右下方 
                return 0;
        }

        return 1;     //可以放的话返回1 
}
int search(int k)
{
        int i;
        for(i=0;i<8;i++)
        {
                
                if(pd(k,i))   //符合条件 
                {
                
                  a[k][i]=1;  //放入皇后 
                if(7==k)   
                {   
                    cout<<sum++<<endl;   //如果放满8个就打印 
                        for(int m=0;m<8;++m)
                        {
                for(int n =0;n<8;++n)
                {
                        cout<<a[m][n]<<" ";
                        }
                        cout<<endl;
                    }
                }
                else 
                search(k+1);    //搜索下一个位置 
                   a[k][i]=0;        //回溯 
           }
   }
}
int main()
{
        
        int i,j;
        for(i=0;i<8;++i)
        for(j=0;j<8;++j)
        a[i][j]=0;   //初始化 
        search(0);
        return 0;
} 
QQ图片20180812190137.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-12 20:23:42 | 显示全部楼层
左下方与右下方没有判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-12 22:11:00 | 显示全部楼层
claws0n 发表于 2018-8-12 20:23
左下方与右下方没有判断

不用的   因为我是从上到下摆放棋子的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 08:49:47 | 显示全部楼层
条件判断的那个地方好像应该是&&的关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 08:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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