测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40986. 孤独的骑士

填空题 较易

题目描述

孤独的骑士

题目描述

任务很简单. 确定国际象棋棋盘上处于骑士攻击之下的格子个数. 棋盘上没有其它棋子. 骑士的走法: 横(纵)向走两个格, 再纵(横)向走一个格(类似于中国象棋中的马).

输入格式

第一行为测试次数N, 1 ≤ N ≤ 100.

后面N行每行包含一个坐标表示骑士的位置.

字母表示横向位置, 数字表示纵向位置.

输出格式

输出N行. 每行一个整数, 表示骑士可攻击的格子个数.

样例输入

3

a1

d4

g6

样例输出

2

8

6

参考答案

#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int mov[9][2]={-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2,-2,-1},xx,yy; int main() { int q,i,j,k,t,p,ans; char c; while(scanf("%d",&t)==1){ getchar(); while(t--){ ans=0; scanf("%c%d",&c,&p); getchar(); if(c=='a')q=1; if(c=='b')q=2; if(c=='c')q=3; if(c=='d')q=4; if(c=='e')q=5; if(c=='f')q=6; if(c=='g')q=7; if(c=='h')q=8; for(i=0;i<8;++i){ xx=q+mov[i][1]; yy=p+mov[i][0]; if(xx>=1&&xx<9&&yy>=1&&yy<9) ans++; } printf("%d\n",ans); } } return 0; }
上一题 下一题