Kkai


私信TA

用户名:1145531885

访问量:1427

签 名:

等  级
排  名 49766
经  验 289
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 黄河科技学院
专  业

  自我简介:

解题思路:

思路很简单,按着题目的要求书写代码即可

注意事项:

使用数组时要注意列和行的问题,不要把列行弄混。

参考代码:

import java.util.Scanner;
public class Main {
 
 //变换蚂蚁头的方向
 public static char getHead(char fx,int color){
  char head = 0;
  if(color == 1){
   switch (fx) {
   case 'U':
    head='R';
    break;
   case 'D':
    head='L';
    break;
   case 'R':
    head='D';
    break;
   case 'L':
    head='U';
    break; 
   default:
    break;
   }
  }
  else{
   switch (fx) {
   case 'U':
    head='L';
    break;
   case 'D':
    head='R';
    break;
   case 'R':
    head='U';
    break;
   case 'L':
    head='D';
    break; 
   default:
    break;
   }
  }
  return head;
 }
 
 public static int getX(char fx, int color, int x){
  char c = getHead(fx, color);
  if(c=='U')
   return x-1;
  else if(c=='D')
   return x+1;
  else
   return x;
 }
 
 public static int gety(char fx, int color, int y){
  char c = getHead(fx, color);
  if(c=='L')
   return y-1;
  else if(c=='R')
   return y+1;
  else
   return y;
 }
 
 public static void showMap(int a[][],int m,int n){
  for(int i=0; i<m; i++){
   for(int j=0; j<n; j++){
    System.out.print(a[i][j]+" ");
   }
   System.out.println();
  }
  System.out.println("________________________");
 }
 public static void test(){
  Scanner scan = new Scanner(System.in);
  int m = scan.nextInt();
  int n = scan.nextInt();
//  int a[][] = {
//    {0,0,0,0,0,0},
//    {0,0,0,0,0,0},
//    {0,0,1,0,0,0},
//    {0,0,0,0,0,0},
//    {0,0,0,0,0,0}};
  int a[][] = new int[m][n];
  for(int i=0; i<m; i++){
   for(int j=0; j<n; j++){
    a[i][j]=scan.nextInt();
   }
  }
  int x = scan.nextInt(); //蚂蚁坐标x,y
  int y = scan.nextInt();
  String s = scan.next();
  char fx = s.charAt(0);  //方向
  int k = scan.nextInt(); //步数
  int newx,newy;
 
  for(int i=0; i<k; i++){
  
   //得到下一步
   newx = getX(fx, a[x][y], x);
   newy = gety(fx, a[x][y], y);
   
   //变换头方向
   fx = getHead(fx, a[x][y]); //得到下一步之后切记要更新fx,
            //不然fx一直是最初赋予的值
   
   //将当前方块颜色变色
   if(a[x][y]==1)
    a[x][y]=0;
   else
    a[x][y]=1;
   
   //移动蚂蚁
   x=newx;
   y=newy;
   
//   showMap(a, m, n);
  }
  System.out.println(x+" "+y);
  
 }
 public static void main(String[] args){
  test();
 }
}


 

0.0分

0 人评分

  评论区

  • «
  • »