⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bahuanghou--meiju.c

📁 八皇后经典算法 包括回溯和枚举两种方法 八皇后经典算法 包括回溯和枚举两种方法
💻 C
字号:
#include "stdio.h"
#include "conio.h"
#include "math.h"
int i,j,b,c,d,sum=0;

main()
{
  int n,t=0,k;  int m[8];

 for(m[1]=1;m[1]<=8;m[1]++)                    /*从第一行到底八行*/
   { for(m[2]=1;m[2]<=8;m[2]++)                 /*  可能摆出的所有情况*/
      { for(m[3]=1;m[3]<=8;m[3]++)
         { for(m[4]=1;m[4]<=8;m[4]++)
            { for(m[5]=1;m[5]<=8;m[5]++)
               { for(m[6]=1;m[6]<=8;m[6]++)
                  { for(m[7]=1;m[7]<=8;m[7]++)
                     { for(m[8]=1;m[8]<=8;m[8]++)
                        {for(i=2,n=0;i<=8;i++)   /*检验是否合法*/
                         {for(j=1;j<i;j++)       /*每行都与上面的做比较*/
                            {if(m[i]==m[j]||abs(i-j)==abs(m[i]-m[j]))
                              break;
                              else n++ ;
                             }
                             if(n==28)   /*若n=28说明8个棋子摆放都合法*/
                            { printf("The %dth way : ",++t);sum++;
                            for(k=1;k<9;k++)
                            printf("m[%d][%d] ",k,m[k]);
                            printf("\n"); }
                            }}}}}}}}}

  printf("sum=%d",sum);
   getch();
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -