time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > C\C++\VC > C语言 > 八皇后问题

八皇后问题

时间:2009-09-20 23:31 点击:486次 字体:[ ]




    #include<stdio.h>
    #define M 8
    #include"graphics.h"
    #define N 9
    #define J 50
    int a[M],k=0;
    f()
    {int i,x[N];int m,n,a[4][2];
    cleardevice();setfillstyle(1,15);
    for(i=0;i<N;i++)
    x[i]=J*i+1 ;
    for(i=0;i<N;i++)

    for(i=0;i<=(N-1)*(N-1)-1;i++)
    {m=i/8;n=i%8;
    a[0][0]=x[m];a[0
    ][1]=x[n];a[1][0]=x[m+1];a[1][1]=x[n];
    a[2][0]=x[m+1];a[2][1]=x[n+1];a[3][0]=x[m];a[3][1]=x[n+1];
       if((m+n)%2==0)
           fillpoly(4,a);}
     }
    l(int j,int k)

    int g()
    {int n,m;
    for(n=0;n<M;n++)
    for(m=n+1;m<M;m++)
    if(m!=n&&(a[n]==a[m]a[n]+n==a[m]+ma[n]-n==a[m]-m))
        return(0);
    return(1);
    }
    void h(int n)
    {int i,m;
    for(i=1;i<=M;i++)
    {a[n-1]=i;
    if(n>1) h(n-1);
    else if(g())
    { f();
         for(m=0;m<M;m++)
           l(m+1,a[m]);getch();}
     }
    }

    void main() /*8 Quen*/
    { int n; int gd=DETECT,gm;initgraph(&gd,&gm,"");
    n=M;
    h(n);
    getch();
    printf("That's all.Thank you!");
    getch();
    }

 



本文地址 : http://www.fengfly.com/plus/view-77263-1.html
标签: 八皇后
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:
本栏分类