解题思路:每个位置其实都有8种走法,但是如果出界则不计
注意事项:getchar(),还有那个数组ch要多留个位置存放'\0'
参考代码:
#include <iostream>
using namespace std;
int main()
{
int go[8][2]={{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
char ch[3];
cin>>ch;
getchar();
int sum=0;
int nx,ny;
ny=ch[1]-'0';
switch(ch[0])
{
case 'a':
nx=1;break;
case 'b':
nx=2;break;
case 'c':
nx=3;break;
case 'd':
nx=4;break;
case 'e':
nx=5;break;
case 'f':
nx=6;break;
case 'g':
nx=7;break;
case 'h':
nx=8;break;
}
int x,y;
for(int j=0;j<8;j++)
{
x=nx+go[j][0];
y=ny+go[j][1];
if(x>=1&&x<=8&&y>=1&&y<=8)sum++;
}
cout<<sum<<endl;
}
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复