蓝桥杯练习题:机器人(java)

本文介绍了一道蓝桥杯编程竞赛中的机器人题目,主要涉及算法设计和Java编程实现。通过分析问题,制定合适的算法策略,并用Java语言进行编程,解决机器人在特定环境下的移动问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package lanqiaobei;

import java.util.HashMap;
import java.util.Scanner;

/*
蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有4种指令:
1.	forward x,前进 x 米。
2.	back x,先向后转,然后前进 x 米。
3.	left x,先向左转,然后前进 x 米。
4.	right x,先向右转,然后前进 x 米。
现在把机器人放在坐标轴原点,起始朝向为 x 轴正方向。经过一系列指令以后,你能告诉蒜头君机器人的坐标位置吗。坐标轴上一个单位长度表示 1 米。

 */
public class Robot {
    public static  int[] res={0,0};
    public static void main(String[] args) {
      //方向顺时针改变
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int x=0;
        int y=0;
        //0 右,1 下,2 左 ,3 上
        int direction=0;
        for (int i = 0; i <n ; i++) {
            direction =  juge(sc.next(),direction);
            switch (direction){
                case 0: x+=sc.nextInt(); break;
                case 1: y-=sc.nextInt(); break;
                case 2: x-=sc.nextInt();break;
                case 3: y+=sc.nextInt();break;
            }
        }
        System.out.println(x+" "+y);
    }
    public static int juge(String j,int direction){
        switch (j){
            case "forward": direction = direction; break;
            case "back": direction = (direction+2)%4; break;
            //==-1;
            case "left": direction = (direction+3)%4; break;
            case "right":direction = (direction+1)%4; break;
        }
        return direction;
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值