WEB开发网
开发学院软件开发C++ 快的马 阅读

快的马

 2008-03-08 12:26:32 来源:WEB开发网   
核心提示:这是用贪婪法编的马的遍历,p()用来选择出口,快的马,g()考察下个出口的出口数,#include<stdio.h>#include<conio.h>int m[8][8]=,a[8]=,b[8]=;int k=0;int g(int x,int y){int x1,y1,com=0,i=0;
这是用贪婪法编的马的遍历。 p()用来选择出口,g()考察下个出口的出口数。 #include<stdio.h>
#include<conio.h>
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<j)
  { 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();
}

Tags:

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接