您现在的位置是:首页 >动态 > 2023-10-23 04:48:24 来源:

八皇后问题运行结果及分析(八皇后问题)

导读 大家好,我是小夏,我来为大家解答以上问题。八皇后问题运行结果及分析,八皇后问题很多人还不知道,现在让我们一起来看看吧!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、}

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