八皇后问题的代码哪里出错了?
自己菜鸟写的八皇后问题不知道哪里出错了,哪位高人指点一二?
- C/C++ code
#include <iostream.h>#include <math.h>#define MAX 8int Queen[MAX];int sum = 0;//打印void printOut() { for(int m=0;m<MAX;m++) cout<<Queen[m]; cout<<endl; }//判断第n个皇后放上去是否合法int IsValid(int n) { for(int i=0;i<n;i++) { if(Queen[n] == Queen[i] || abs(Queen[n]-Queen[i]) == n-i) return 0; } return 1;}//在第i行放置皇后void PutQueen(int i) { for(int j=0;j<MAX;j++) { if(i == MAX) { sum++; cout<<sum<<endl; printOut(); } Queen[i] = j; if(IsValid(i)) PutQueen(i+1); //递归 }}int main() { PutQueen(0); cout<<"The count: "<<sum<<endl; return 0;}
[解决办法]
看lz代码的格式挺爽.调试下