本文主要是介绍【算法】八女王问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*递归回溯算法 */#include "stdio.h"
int count;
int queen [10], column[20],left[20],right[20];
void prt1()
{ int j;
printf("No.%d ",++count);
for (j=1;j<=8;j++) printf("%3d",queen[j]);
printf("/n");
}
void try(int i)
{int j;
for (j=1;j<=8;j++)
if (column[j] && left[i-j+8] && right[i+j])
{ queen[i]=j; column[j]=0;
left[i-j+8]=0; right[i+j]=0;
if (i<8) try(i+1);
else prt1();
column[j]=left[i-j+8]=right[i+j]=1;
}
}
main()
{int i;
for (i=1;i<=16;i++)
column[i]=left[i]=right[i]=1;
count=0; try(1);
}
这篇关于【算法】八女王问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!