هشت وزیر را در هشت خانه شطرنج (  ۸ * ۸ )  طوری قرار دهید که هیچکدام یکدیگر را تهدید نکنند. وزیر در خانه های شطرنج به صورت عرضی،طولی و قطری می تواند حرکت کند. این مسئله قابل تعمیم به مسئله N وزیر در یک شطرنج N*N است.

تاریخچه: این مسئله در سالی ۱۸۴۸ توسط شطرنج بازی به نام Max Bezzel عنوان شد و ریاضی دانان بسیاری ازجمله Gauss و Georg Cantor بر روی این مسئله کار کرده و در نهایت آنرا به N وزیر تعمیم دادند. اولین راه حل توسط Franz Nauck در سال ۱۸۵۰ ارائه شد که به همان مسئله N وزیر تعمیم داده شد. پس از آن Gunther راه حلی با استفاده از دترمینان ارائه داد که J.W.L. Glaisher آنرا کامل نمود.
در سال ۱۹۷۹ ، Edsger Dijkstra با استفاده از الگوریتم عقب گرد اول عمق این مسئله را حل کرد.

#include
#include
#include
#include 

const int m=20;
int k[m][m];
int Count=0;
int v=0 , n=0 , i=0 , j=0 , state=0;

void remove(int i,int j)
{
      int p,q;
      k[i][j]=0;
      Count--;
      for(p=0;p=0 && q>=0)
      {
               k[p--][q--]--;
      }
     p=i+1;
      q=j-1;
     while(p=0)
      {
               k[p++][q--]--;
      }
     p=i-1;
      q=j+1;
     while(p>=0 && q=0 && q>=0)
      {
               k[p--][q--]++;
     }
      p=i+1;
     q=j-1;
     while(p=0)
     {
                    k[p++][q--]++;
     }
     p=i-1;
     q=j+1;
      while(p>=0 && q<<<'.';
                     else
                                   cout<<<'X';
                 }
             cout<<<<<<"Total states founded for "<<<"*"<<<" boards and "<<<" Queens: "
<<<<<<"Press q to exit or any key to continue...";
                 int c=getch();
                      if(c=='q')exit(0);
     }
}

void move(int p,int q)
{
     apply(p,q);
     check();
      for(int i=p;i<<"**************Queens******************"<<<<"Enter size of board :";     cin>>n;
    cout<<"Enter number of queens:";     cin>>v;
     clrscr;
    draw();
     for(i=0;i<<"Total states:"<<