更新时间2018-11-25 04:04:30
#include<iostream>
using namespace std;
int vis_clm[8], vis_diag[15], vis_diag2[15];
int res[100][8], cnt = 0;
void search(int l)
{
if(l>=8)
{
++cnt;
return;
}
for(int c=0; c<8; ++c)
{
if(vis_clm[c]||vis_diag[c-l+7]||vis_diag2[c+l]) continue;
vis_clm[c]=1;
vis_diag[c-l+7]=1;
vis_diag2[c+l]=1;
res[cnt][l]=c;
search(l+1);
vis_clm[c]=0;
vis_diag[c-l+7]=0;
vis_diag2[c+l]=0;
}
}
int main()
{
search(0);
cout<<cnt<<endl;
for(int i=0;i<cnt;++i)
{
cout<<"The "<<i+1<<" th solution:"<<endl;
for(int l=0;l<8;++l)
{
for(int k=0;k<res[i][l];++k)
cout<<'.';
cout<<'*';
for(int k=0;k<7-res[i][l];++k)
cout<<'.';
cout<<endl;
}
cout<<endl<<endl;
}
system("pause:");
return 0;
}
计算机语言不可能每一行解释的(看程序主要要理解的是解决问题的思路和方法而不是每一句的语法)
若你是刚刚接触c++,那就应该自己试着写简单的程序而不是去看你无法理解的程序,看别人的程序对初学者没有意义的(我一向的观点)