zoukankan      html  css  js  c++  java
  • 八皇后 2333

    #include<iostream>
    using namespace std;
    int map[8][8]={0};
    int ct=0;
    int safe_ab(int a,int b)
    {
    	for(int i=0;i<8;i++)//行判断
    	{
    		if(map[a][i]==3)
    		{
    			return 0;
    		}	
    	}
    	
    	for(int i=0;i<8;i++)//列判断
    	{
    		if(map[i][b]==3)
    		{
    			return 0;
    		}
    	}
    	
    	for(int i=0;i<8;i++)
    	 for(int j=0;j<8;j++)//对角线
    	 {
    		 if((i+j)==(a+b))
    		 {
    			 if(map[i][j]==3)
    			 {
    				 return 0;
    			 }
    		 }
    		 
    	 }
    	 
    	for(int i=0;i<8;i++)
    	 for(int j=0;j<8;j++)//对角线
    	 {
    		 if((i-j)==(a-b))
    		 {
    			 if(map[i][j]==3)
    			 {
    				 return 0;
    			 }
    		 }
    		 
    	 }
    	 return 1;
    } 
    
    void dfs(int a,int b)
    {
    	if(a==8)
    	{
    		ct++;
    		  for(int i=0;i<8;i++)
    		  {
    			for(int j=0;j<8;j++)
    			{
    				cout<<map[i][j]<<" ";
    			}
    			cout<<endl;
    		  }
    		  cout<<"========================================="<<endl;
    		return;
    	}
    	
      for(int i=0;i<8;i++)
      {
      	if(safe_ab(a,i))
      	{
      		map[a][i]=3;
      		dfs(a+1,0);
      		map[a][i]=0;
      	}
      }
      
    }
    
    int main()
    {
        dfs(0,0);
    
    	cout<<ct;
    	return 0;
    }
    

      

  • 相关阅读:
    JAVA 练习1
    JSP基础
    网络协议
    mysql基础
    python之高级
    powershell基础
    python之迭代器与遍历
    python之面向对象
    linux常用命令
    docker 安装 ElasticSearch:7.4.2
  • 原文地址:https://www.cnblogs.com/sundy-lee/p/4401988.html
Copyright © 2011-2022 走看看