蓝桥杯——机器人行走

某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。

例如,我们可以对小车输入如下的指令:15L10R5LRR10R20 则,小车先直行15厘米,左转,再走10厘米,再右转,…

不难看出,对于此指令串,小车又回到了出发地。

你的任务是:编写程序,由用户输入指令,程序输出每条指令执行后小车位置与指令执行前小车位置的直线距离。

输入、输出格式要求
用户先输入一个整数n(n<100),表示接下来将有n条指令。接下来输入n条指令。每条指令只由L、R和数字组成(数字是0~100之间的整数),每条指令的长度不超过256个字符。
程序则输出n行结果。每条结果表示小车执行相应的指令前后位置的直线距离。要求四舍五入到小数后2位。 例如:用户输入:
5
L100R50R10
3LLL5RR4L12
LL
100R
5L5L5L5

则程序输出:
102.96
9.06
0.00
100.00

0.00

import java.util.ArrayList;
import java.util.Scanner;public class 机器人行走 {/*** @param args*///初始朝向static int fang=1;//初始坐标static int x=0,y=0;//定义方向static int[][]ss={{0,1},{1,0},{0,-1},{-1,0}};public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);int n=scanner.nextInt();String[]list=new String[n];for (int i = 0; i <n; i++)list[i]=scanner.next();for (String string : list){Get(string);x=0;y=0;}}public static void Get(String str){ArrayList<String>list=new ArrayList<String>();//将字符与数字分开String temp1="";//零时存储数字String temp2="";//零时存储字符for (int i = 0; i < str.length(); i++){//如果当前获取的字符属于数字,则并入 temp1if(str.charAt(i)>='0'&&str.charAt(i)<='9'){temp1+=str.charAt(i)+"";if(i==str.length()-1)list.add(temp1);}//如果当前获取的字符不属于数字else{//判断存储数字的 temp1 是否属于空if(temp1!=""){list.add(temp1);temp1="";}temp2=str.charAt(i)+"";list.add(temp2);}}//遍历区分开来的队列for (String s : list) {//如果不是方向键 则按照当前方向前进if(!s.equals("R")&&!s.equals("L")){int t=Integer.parseInt(s);run(t);}else{//如果是方向键则进行转向
                turn(s);}}//利用直角三角形的定理 算出长边的长度double sum=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));System.out.printf("%.2f",sum);System.out.println();}//n 前进的距离static void run(int n){x+=ss[fang][0]*n;y+=ss[fang][1]*n;}//转弯static void turn(String st){//如果是右方(顺时针)则加一并取模4的值if(st.equals("R")){fang=(fang+1)%4;}//如果是左方(顺时针)则加3并取模4的值else{fang=(fang+3)%4;}}}

原文链接:https://blog.csdn.net/qq_39020387/article/details/79739814

转载于:https://www.cnblogs.com/welcom/p/10759039.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb:脚本标识

脚本标识 一、JSP表达式 1、介绍 用于向页面中输出信息 2、语法格式 <% 表达式%>3、注意 在"<%"和""之间不允许有空格&#xff0c;但是在""后面的表达式之间可以有空格不仅可以插入到网页中&#xff0c;还可以插入到HTML标记中&#xf…

线程死锁问题

1 package com.demo.bingfa;2 3 /**4 * java并发编程中&#xff0c;死锁的概念5 *6 * 我们启用了两个线程&#xff0c;分别抢占2个资源&#xff0c;但这两个资源又分别被不同的对象&#xff08;字符串&#xff09;锁住了。7 * 当第一个线程调用 resource1 方法&#xff0c;…

CSS的4个简写

CSS的4个简写 2010-12-13 18:50 聂微东 阅读(1547) 评论(3) 编辑 收藏 1.background 简写属性在一个声明中设置所有的背景属性: background-colorbackground-imagebackground-repeatbackground-attachmentbackground-position 例如: background: #444444 url(image.png…

spring boot 整合 (全)

参考: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples转载于:https://www.cnblogs.com/lshan/p/9924005.html

使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)

项目以vue.jslayUI的作为前端开发技术栈&#xff0c;需要有一个在线的环境供项目成员实时查看效果&#xff0c;总不能每次都webpack打包发布后才能看到效果吧&#xff01;刚开始就简单使用npm run dev命令热启动&#xff0c;但是shell命令窗口退出后&#xff0c;热启动也就失效…

微信小程序工具类

wechat-common-sdk ? 场景&#xff1a;目前工作中的项目需要包含并使用另一个项目。 也许是第三方库&#xff0c;或者你独立开发的&#xff0c;用于多个父项目的库。 现在问题来了&#xff1a;你想要把它们当做两个独立的项目&#xff0c;同时又想在一个项目中使用另一个。 我…

zabbix实现mysql数据库的监控

先来介绍zabbix中几个常用的术语&#xff1a; 主机&#xff08;host&#xff09;&#xff1a; 要监控的网络设备&#xff0c;可由ip或DNS名称指定。 主机组&#xff08;host group&#xff09;&#xff1a; 主机的逻辑容器&#xff0c;可以包含主机和模板&#xff…

VSCode配合eslint进行JavaScript质量检查

写在开始前&#xff1a;如有不准确的地方希望大家提出&#xff0c;文章可以改知识不能错。 创建一个项目 这里已node项目为例 npm init 根据提示填写相关信息 安装eslint npm install eslint --save也可以全局安装 npm install eslint -g初始化 eslint文件 eslint --init执行命…

未找到导入的项目,请确认 Import 声明中的路径正确

VS2017打开以前vs版本开发的项目 <Import Project"$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project"$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" /> 修改V12…

修改Jupyter的工作空间

修改Jupyter的工作空间 1、安装Jupyter Notebook 刚安装完并配置好Sublime Text 3后被学长推荐使用Jupyter notebook&#xff0c;于是就想着看看试试有没有他说的那么好。 安装&#xff1a;命令行直接pip install jupyter(前提是先安装好了python和pip) 2、安装完后困惑 这么大…

bzoj [Usaco2009 Hol]Cattle Bruisers 杀手游戏

Description Input 第1行输入N&#xff0c;R&#xff0c;BX&#xff0c;BY, BVX&#xff0c;BVY&#xff0c;之后N行每行输入四个整数Xi&#xff0c;Yi&#xff0c;VXi&#xff0c;VYi&#xff0e; Output 一个整数&#xff0c;表示在逃脱过程中&#xff0c;某一个时刻最多有这…

Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园

前言 在团队协作开发中&#xff0c;为了统一代码风格&#xff0c;避免一些低级错误&#xff0c;应该设有团队成员统一遵守的编码规范。很多语言都提供了Lint工具来实现这样的功能&#xff0c;JavaScript也有类似的工具&#xff1a;ESLint。除了可以集成到构建工具中(如&#x…

CS 325 HW

代做CS 325作业、代写C, C/Python编程设计作业、代做Python/c实验作业CS 325 – HW 51. (6 points) Consider an undirected graph G(V,E) with nonnegative edge weights w(u,v)0. Supposethat you have computed a minimum spanning tree G, and that you have also computed…

express下使用ES6 - dtdxrk - 博客园

express下使用ES6 1 2 3 4 5 6 7 8 9 //环境切换配置 package.json scripts:{ "service": "NODE_ENVproduction PORT3000 npm start" } //node js判断 var app express(); app.get(env) production 原文地址&#xff1a;https://segmentfault.com/a…

java中的内部类详解

https://www.cnblogs.com/dolphin0520/p/3811445.html https://www.cnblogs.com/chenssy/p/3388487.html转载于:https://www.cnblogs.com/codeLei/p/9934195.html

eclipse下使用git插件上传代码至github

eclipse下使用git插件上传代码至github 1.eclipse下安装git 正常情况下&#xff0c;eclipse 是自带 git 插件的&#xff0c;那么即可跳至步骤1的最后一小步&#xff0c;配置 git 。 如果十分悲剧&#xff0c;你的 eclipse 中见不到 git 的身影&#xff0c;那么也没关系&#…

VS(C++)配置Halcon(一次配置,永久使用)

【说明】只需配置一次&#xff0c;以后新项目无需再次配置。 本教程是64位版本&#xff0c;32位可参考本教程。VS与Halcon无论哪个版本&#xff0c;都可参考本教程。 【步骤】以VS2015Halcon18.11为例 1、新建一个C|Win32控制台应用程序项目 2、视图|其他窗口|属性管理器 在 De…

(转)msys2使用教程

一、安装 官方下载地址 http://www.msys2.org/ 指定好安装路径&#xff08;一般D根目录即可&#xff09;&#xff0c;一路下一步就好。 二、配置国内镜像、设置窗体修改颜色 使用[清华大学开源软件镜像站]中的地址&#xff0c;修改\etc\pacman.d目录下的三个文件。 配置教程 ht…

简单使用Git和Github来管理自己的代码和读书笔记

简单使用Git和Github来管理自己的代码和读书笔记 以前不知道使用代码管理工具&#xff0c;最后写的一些东西都没有了&#xff0c;由于硬盘坏了或者不小心格式化了之类的&#xff0c;后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少&#xff0c;到哪里只要有网就可…

android 资源

在进行APP开发的过程当中&#xff0c;会用到许多资源&#xff0c;比如&#xff1a;图片&#xff0c;字符串等。现对android资源知识进行简单记录。 具体的详细信息及用法&#xff0c;点击查看官方文档 分类 一般android资源分为可直接访问的系统资源和不可直接访问的原生资源 r…