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

📄 八皇后.cpp

📁 本程序是用MFC编写的八皇后问题
💻 CPP
字号:
#include "iostream" 
#include "iomanip" 
#define N 8 
using namespace std; 

char arr[N][N]={""}; 
int count=0; 

int main() 
{ 
void input(int m,int n); 
void output(); 
int set_queen(int m); 
void copy_arr(int num); 

int m=0; 
set_queen(m); 
return 0; 
} 

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

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

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

arr[m][n]='&'; 
} 

void output() 
{ 

cout<<"this is the "<<++count<<"mathod:\n"; 
for(int i=0;i<N;i++) 

{ 
for(int j=0;j<N;j++) 
cout<<setw(3)<<arr[i][j]; 
cout<<endl; 
} 
cout<<"-------------"<<endl; 
} 


int set_queen(int m) 
{ 
char arr_2[N][N]; 
if(m==N) 
{ 
output();return 1; 
} 

for(int i=0;i<N;i++) 
{ 
int k,j; 
if(arr[m][i]=='*')continue; 

for(k=0;k<N;k++) 
for(j=0;j<N;j++) 
arr_2[k][j]=arr[k][j]; 

arr[m][i]='&'; 
input(m,i); 
set_queen(m+1); 

for(k=0;k<N;k++) 
for(j=0;j<N;j++) 
arr[k][j]=arr_2[k][j]; 
} 

return 0; 
}

⌨️ 快捷键说明

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