你爸爸


私信TA

用户名:hyh1128

访问量:312

签 名:

等  级
排  名 19350
经  验 722
参赛次数 1
文章发表 1
年  龄 0
在职情况 学生
学  校 东华理工大学
专  业 软件工程

  自我简介:

菜鸟的进步

解题思路:根据一开始蚂蚁所处的格子分为两种情况:

                根据步数建立for循环,首先让蚂蚁所处的格子变为相对立的颜色。

              1-处于白格中,先由switch,case语句判断开始蚂蚁的方向,然后蚂蚁向左旋转90度,改变方向。

              2-处于白格中,先由switch,case语句判断开始蚂蚁的方向,然后蚂蚁向右旋转90度,改变方向。

注意事项:注意蚂蚁向上走是x的值减一,向下走是加一;(一开始我就错在这)
                
参考代码:import java.util.Scanner;
public class Main {
    public static int[][] q;                                //颜色矩阵
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int m=sc.nextInt();
        int n=sc.nextInt();
        q=new int[m][n];
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++)
                q[i][j]=sc.nextInt();                        //输入矩阵的数字
        int x=sc.nextInt();
        int y=sc.nextInt();
        String s=sc.next();
        int k=sc.nextInt();
        for(int i=0;i<k;i++) {                            //根据步数确定循环多少次
            if(q[x][y]==0)                                   //处于白格的情况
            {
                q[x][y]=1;                                     //改变颜色
                int x1=0;
                int y1=0;
                switch (s){                                    //改变方向
                    case "L":s="D";break;
                    case "R":s="U";break;
                    case "U":s="L";break;
                    case "D":s="R";break;
                }
                if(s=="L") {
                    x1=x;
                    y1=y-1;
                }
                if(s=="R") {
                    x1=x;
                    y1=y+1;
                }
                if(s=="U") {
                    x1=x-1;
                    y1=y;
                }
                if(s=="D") {
                    x1=x+1;
                    y1=y;
                }
                x=x1;                                                   //改变x,y的值,进入下一步
                y=y1;
            }
            else {                                                    //处于黑格的情况           
                int x1=0;
                int y1=0;
                switch (s){                                        //改变方向
                    case "L":s="U";break;
                    case "R":s="D";break;
                    case "U":s="R";break;
                    case "D":s="L";break;
                }
                if(s=="L") {
                    x1=x;
                    y1=y-1;
                }
                if(s=="R") {
                    x1=x;
                    y1=y+1;
                }
                if(s=="U") {
                    x1=x-1;
                    y1=y;
                }
                if(s=="D") {
                    x1=x+1;
                    y1=y;
                }
                x=x1;
                y=y1;
            }
            
        }
        System.out.println(x+" "+y);
    }
}

 

0.0分

2 人评分

  评论区

  • «
  • »