A. King Moves
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
The only king stands on the standard chess board. You are given his position in format "cd", where c is the column from 'a' to 'h' and d is the row from '1' to '8'. Find the number of moves permitted for the king.
Check the king's moves here https://en.wikipedia.org/wiki/King_(chess).
Input
The only line contains the king's position in the format "cd", where 'c' is the column from 'a' to 'h' and 'd' is the row from '1' to '8'.
Output
Print the only integer x — the number of moves permitted for the king.
Example
input
e4
output
8
题意:在国际象棋上,给你将的位置,问你它可以走多少个方向。
AC代码:
#include <bits/stdc++.h>
using namespace std ;
int main()
{
char a[5];
while(cin>>a)
{
int x=a[0]-'a'+1;
int y=a[1]-'0';
if(x==1&&y==1||x==8&&y==8||x==1&&y==8||x==8&&y==1)//4个角
cout<<"3"<<endl;
else if((x==1||x==8)&&(x!=1||y!=8))//边上(除了角)
cout<<"5"<<endl;
else if((y==1||y==8)&&(x!=1||x!=8))//边上(除了角)
cout<<"5"<<endl;
else
cout<<"8"<<endl;
}
return 0;
}
标程代码:
#include <bits/stdc++.h>
using namespace std ;
int main()
{
char a,b;
while(cin>>a>>b)
{
int cnt=0;
if(a=='a'||a=='h')
cnt++;
if(b=='1'||b=='8')
cnt++;
if(cnt==0)
puts("8");
else if(cnt==1)
puts("5");
else if(cnt==2)
puts("3");
}
return 0;
}
尊重原创,转载请注明出处:http://blog.csdn.net/hurmishine