ZZULIOJ 第1070题Java代码的解题代码

这篇博客介绍了一道编程题,涉及一辆智能小车根据时间戳接收命令移动的问题。小车初始位置为(0,0),以10公里/小时的速度向北移动,接收到1(左转)、2(右转)、3(停止)的命令。文章讲解了如何使用while循环和direction变量来判断小车行驶方向,并给出了关键代码片段。作者提醒注意时间变量的控制,并鼓励读者一起学习进步。" 133224105,20036398,Go语言切片删除元素:索引法与重建法,['golang'],"['Go语言', '切片', '删除元素', '索引操作', '重建切片']

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

1070: 小汽车的位置

题目描述:
有一辆智能小车,最初(时间为0)的位置为(0,0),我们想知道它最后的位置。小车以每小时10公里的速度向北移动(以北为y轴正向,以东为x轴正向)。小车会受到一系列依照时间戳记排序的命令,1表示“向左转”,2表示“向右转”,3表“停止”。每个命令的前面有一个时间戳记,所以我们知道该命令是何时发出的。最后一个命令一定是“停止”。我们另外假设,这辆小车非常灵活,它可以在瞬间转弯。以下列输入为例。小车在时间为5的时候收到一个“向左转”的命令1,在时间10收到一个“向右转”的命令2,在时间15收到一个“停止”的命令3。那么在最后时间15的时候,小车的位置将在(-50,100)。程序只要求输出小车最后的位置,第一个整数是x坐标,第二个整数是y坐标。

按照题目中所提示解题思路很容易可以想到在代码中用while循环来解决
我们可以先设置一个direction(方向)变量,通过direction来表示小车行驶的方向,当direction=0时,小车向北行驶,direction=1时向西,为2时向南,为3时向东。设定direction再弄为0-3之间的数字即可。
代码如下:

import java.util.Scanner;
public class a1070{
    public static void main(String[] arge){
        Scanner input=new Scanner(System.in);
        int time,command;
        time=input.nextInt();
        command=input.nextInt();
        int x,y,c,t,direction=0;
        y=time*10;
        x=0;
        c=time;
        while(command!=3){
         t=c;
            c=input.nextInt();
            time=c-t;
            if(command==1){
                direction+=1;
            }
            if(command==2){
                direction=direction-1;
            }
            if(direction<0){
                direction=3;
            }
            if(direction>3){
                direction=0;
            }
            if(direction==0){
                y+=time*10;
            }else if(direction==1){
                x=x-time*10;
            }else if(direction==2){
                y=y-time*10;
            }else if(direction==3) {
             x+=time*10;
            }
            command=input.nextInt();
        }
        System.out.println(x+","+y);
    }
}

这道题要注意的一点是,关于时间的那个变量的控制,我当时自己就因为time变量的赋值而耽误了好久。
最后希望我的代码可以给你带来一定的帮助,同学一起加油吧!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值