啦啦啦


私信TA

用户名:894659266

访问量:1142

签 名:

等  级
排  名 37695
经  验 405
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 莞工
专  业

  自我简介:

TA的其他文章

解题思路:每个位置其实都有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分

4 人评分

  评论区

说实话,这代码不够简洁
2021-10-15 08:37:14
  • «
  • 1
  • »