简单的计算题。
#include <stdio.h>
int king(int x,int y)
{
return (x<y?x:y)+(x>y?x-y:y-x);
}
int queen(int x,int y)
{
return (!x||!y||x==y)?1:2;
}
int chariot(int x,int y)
{
return (!x||!y)?1:2;
}
int elephant(int x,int y)
{
return (x-y)%2?0:(x==y?1:2);
}
int main()
{
int n,x,y;
char begin[3],end[3];
scanf("%d",&n);
for(;n>0;n--)
{
scanf("%s%s",begin,end);
x=(begin[0]<end[0])?end[0]-begin[0]:begin[0]-end[0];
y=(begin[1]<end[1])?end[1]-begin[1]:begin[1]-end[1];
if(!x&&!y)
printf("%d %d %d %d\n",0,0,0,0);
else
{
if(elephant(x,y))
printf("%d %d %d %d\n",king(x,y),queen(x,y),chariot(x,y),elephant(x,y));
else
printf("%d %d %d Inf\n",king(x,y),queen(x,y),chariot(x,y));
}
}
return 0;
}

本文介绍了一个简单的程序,该程序用于计算棋盘上不同棋子从一个位置移动到另一个位置的可能性。涉及的棋子包括国王、皇后、车和象,通过输入起始位置和结束位置来判断每种棋子是否可以实现移动。

被折叠的 条评论
为什么被折叠?



