龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

快的马

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
这是用贪婪法编的马的遍历。 p()用来选择出口,g()考察下个出口的出口数。 #include #include int m[8][8]=,a[8]=, b[8]=; int k=0; int g(int x,int y) {int x1,y1,com=0,i=0; if(x 7y 7m[x][y]>0) return(8); else for(;i {

这是用贪婪法编的马的遍历。

p()用来选择出口,g()考察下个出口的出口数。

#include

  #include

  int m[8][8]=,a[8]=,

   b[8]=;

int k=0;

  int g(int x,int y)

  {int x1,y1,com=0,i=0;

   if(x<0x>7y<0y>7m[x][y]>0)

   return(8);

   else for(;i<7;i++)

   {x1=x+a[i];y1=y+b[i];

   if(x1>=0&&x1<8&&y1>=0&&y1<8&&m[x1][y1]==0)

   com++;}

  return(com);

  }

  p(int x,int y)

  {int i,n,k,j=8;

   for(i=0;i<8;i++)

   {n=g(x+a[i],y+b[i]) ;

   if(n

   { k=i;j=n;}

   }

   return(k);

  }

  f(int x,int y)

  {int i;

   if(k==64)

   printf("OK ");

   else{

   i=p(x,y);

   m[x][y]=++k;

   x=x+a[i];y=y+b[i];

   f(x,y); }

  }

  main()

  { int x,y;

  f(0,0);

  printf(" ");

  for(x=0;x<8;x++)

  {for(y=0;y<8;y++)

   printf("%3d",m[x][y]);

   printf(" ");}

   getch();

  }

  

  

精彩图集

赞助商链接