八皇后问题递归算法 八皇后问题
综合精选
2024-10-13 21:48:44
导读 大家好,我是小典,我来为大家解答以上问题。八皇后问题递归算法,八皇后问题,很多人还不知道,现在让我们一起来看看吧!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、}
本文到此讲解完毕了,希望对大家有帮助。