首页 > 学院 > 开发设计 > 正文

快的马

2019-11-17 05:48:17
字体:
来源:转载
供稿:网友
这是用贪婪法编的马的遍历。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();
}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表