⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 八皇后问题.cpp

📁 八皇后问题
💻 CPP
字号:
//&代表皇后位置 
#include "iostream" 
#include "iomanip" 
#define N 8 
using namespace std; 

char array[N][N]={""}; 
void input(int m,int n); 
void output(); 
int set_queen(int m); 
void copy_arrayay(int num);

int main() 
{ 
    int m=0; 
    set_queen(m); 
    system("pause");
    return 0; 
} 

void input(int m,int n) 
{ 
    for(int i=0;i<N;i++) 
        array[i][n]='*'; 
    for(int j=0;j<N;j++) 
        array[m][j]='*'; 

    int p,q; 
    p=m,q=n; 
    for(p++,q++;p<N && q<N;p++,q++) 
        array[p][q]='*'; 
    p=m,q=n; 
    for(p--,q--;p>=0 && q>=0;p--,q--) 
        array[p][q]='*'; 

    int a,b; 
    a=m,b=n; 
    for(a++,b--;a<N && b>=0;a++,b--) 
        array[a][b]='*'; 
    a=m,b=n; 
    for(a--,b++;a>=0 && b<N;a--,b++) 
        array[a][b]='*'; 
    array[m][n]='&'; 
} 

void output() 
{ 
    int count=1; 
    cout<<"this is the "<<++count<<"mathod:\n"; 
    for(int i=0;i<N;i++) 
    { 
        for(int j=0;j<N;j++) 
            cout<<setw(3)<<array[i][j]; 
        cout<<endl; 
    } 
    cout<<"-------------"<<endl; 
} 


int set_queen(int m) 
{ 
    char array_2[N][N]; 
    if(m==N) 
    { 
        output();
        return 1; 
    } 
    for(int i=0;i<N;i++) 
    { 
        int k,j; 
        if(array[m][i]=='*')
            continue; 
        for(k=0;k<N;k++) 
            for(j=0;j<N;j++) 
                array_2[k][j]=array[k][j]; 
 
        array[m][i]='&'; 
        input(m,i); 
        set_queen(m+1); 

        for(k=0;k<N;k++) 
            for(j=0;j<N;j++) 
                array[k][j]=array_2[k][j]; 
    } 
    return 0; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -