哪位高手帮小弟我看上代码中哪有有关问题
谁帮我看下代码中哪有问题。
#include<iostream>
using namespace std;
#define N 8;
int a[9]={0};
bool pass(int n)
{
int i=1;
while(i<n)
{
if(a[i]==a[n]||(abs(a[i]-a[n])==abs(i-n)))
{
return false;
}
i++;
}
return true;
}
void print()
{
int j=1;
while(j<=8)
{
cout<<a[j++]<<' ';
}
cout<<endl;
}
void queen(int k)
{
int count=0;
while(k>=1)
{
a[k]++;
while(!pass(k)&&a[k]<=N)
{
a[k]++;
}
if(a[k]<=N)
{
if(k==N)
{
count++;
cout<<count<<endl;
print();
}
else
{
k++;
}
}
else
{
a[k--]=0;
}
}
}
int main()
{
queen(1);
return 0;
}
------解决方案--------------------
#include<iostream>
using namespace std;
#define N 8;
int a[9]={0};
bool pass(int n)
{
int i=1;
while(i<n)
{
if(a[i]==a[n]||(abs(a[i]-a[n])==abs(i-n)))
{
return false;
}
i++;
}
return true;
}
void print()
{
int j=1;
while(j<=8)
{
cout<<a[j++]<<' ';
}
cout<<endl;
}
void queen(int k)
{
int count=0;
while(k>=1)
{
a[k]++;
while(!pass(k)&&a[k]<=N)
{
a[k]++;
}
if(a[k]<=N)
{
if(k==N)
{
count++;
cout<<count<<endl;
print();
}
else
{
k++;
}
}
else
{
a[k--]=0;
}
}
}
int main()
{
queen(1);
return 0;
}
------解决方案--------------------
- C/C++ code
#define N 8 //去掉后面的;