八皇后问题递归算法 八皇后问题

导读 大家好,我是小典,我来为大家解答以上问题。八皇后问题递归算法,八皇后问题,很多人还不知道,现在让我们一起来看看吧!1、/* 递归回溯...

大家好,我是小典,我来为大家解答以上问题。八皇后问题递归算法,八皇后问题,很多人还不知道,现在让我们一起来看看吧!

1、/* 递归回溯算法 */

2、#include "stdio.h"

3、int count;

4、int queen [10], column[20],left[20],right[20];

5、void prt1()

6、{ int j;

7、printf("No.%d ",++count);

8、for (j=1;j<=8;j++) printf("%3d",queen[j]);

9、printf(" ");

10、}

11、void try(int i)

12、{int j;

13、for (j=1;j<=8;j++)

14、if (column[j] && left[i-j+8] && right[i+j])

15、{ queen[i]=j; column[j]=0;

16、left[i-j+8]=0; right[i+j]=0;

17、if (i<8) try(i+1);

18、else prt1();

19、column[j]=left[i-j+8]=right[i+j]=1;

20、}

21、}

22、main()

23、{int i;

24、for (i=1;i<=16;i++)

25、column[i]=left[i]=right[i]=1;

26、count=0; try(1);

27、}

本文到此讲解完毕了,希望对大家有帮助。

版权声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。