سلام
یک برنامه به روش بازگشتی به زبان c در ویکیپدیا پیدا کردم
ولی یکم برام گنگه
و نیاز به توضیح دارم
که چطوری کار میکنه
void queens ( index i)
{
index j;
if ( promising(i))
if ( i == n)
cout << col [1] through col [n];
else
for ( j = 1 ; j ? n ; j++ ) {

col [ i +1 ] = j;
queens ( i + 1);
}
}
bool promising ( index i )
{
index k ;
bool switch;
k = 1;
switch = true ;
while ( k < i && switch ) {
if (col [i] == col[k] || abs(col[i] – col[k] == i-k)
switch = false;
k++;
}
return switch;
}