八皇后问题

来源:互联网 发布:颜色矩阵 1.0f 编辑:程序博客网 时间:2024/05/29 15:06
void backtrace(int t){  if(t > num)  {    sum++;    for(int m = 1; m < num; m ++)    {      cout << x[m];    }    cout <<end;  }  else    for(int i = 1; i <= num; i ++)    {      x[t] = i;//表示第i行 皇后放在第x[i]的位置      if(place(t))        backtrace(t + 1);    }}bool place(int k){  for(int j = 1; j < k; j ++)    if(abs(x[k] - x[j]) == abs(k - j) || x[k] == x[j])//此处的place函数用来      //进行我们上面所说的条件的判断,如果成立,进入下一级递归      return false;    return true;}static int num;static int *x;static int sum;void main(){  num = 8;  sum = 0;  x = new int[num + 1];  for(int i = 0; i <= num; i ++)    x[i] = 0;  backtrace(1);  cout << "total results is:" << sum;}

0 0
原创粉丝点击