java实现第三届蓝桥杯机器人行走
机器人行走
【编程题】(满分18分)
某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有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
【注意】
请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
请把所有类写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
请不要使用package语句。
源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。
import java.util.Scanner;
public class Main {
public static String Left = "ULDR";
public static String Right = "URDL";
public double getResult(String A) {
double r = 0, x = 0, y = 0;
char way = 'U';
for(int i = 0;i < A.length();i++) {
int start = i;
if(A.charAt(start) >= '0' && A.charAt(start) <= '9') {
while(start < A.length() && A.charAt(start) >= '0' && A.charAt(start) <= '9')
start++;
int num = Integer.valueOf(A.substring(i, start));
if(way == 'U')
y += num;
else if(way == 'L')
x -= num;
else if(way == 'D')
y -= num;
else if(way == 'R')
x += num;
i = start - 1;
} else {
char temp = A.charAt(i);
if(temp == 'L') {
int p = Left.indexOf(way+"");
p = (p + 1) % 4;
way = Left.charAt(p);
} else if(temp == 'R') {
int p = Right.indexOf(way+"");
p = (p + 1) % 4;
way = Right.charAt(p);
}
}
}
r = Math.sqrt(x*x + y*y);
return r;
}
public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double[] result = new double[n];
for(int i = 0;i < n;i++) {
String A = in.next();
result[i] = test.getResult(A);
}
for(int i = 0;i < n;i++) {
System.out.printf("%.2f", result[i]);
System.out.println();
}
}
}
java实现第三届蓝桥杯机器人行走的更多相关文章
- java实现第三届蓝桥杯方块填数
方块填数 "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6的小格被分为6个部 ...
- java实现第三届蓝桥杯DNA对比
DNA对比 脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子.它由4种主要的脱氧核苷酸(dAMP.dGMP.dCMT和dTMP)通过磷酸二酯键连接而成.这4种核苷酸可以分别记为:A.G.C. ...
- java实现第三届蓝桥杯拼音字母
拼音字母 在很多软件中,输入拼音的首写字母就可以快速定位到某个词条.比如,在铁路售票软件中,输入: "bj"就可以定位到"北京".怎样在自己的软件中实现这个功能 ...
- java实现第三届蓝桥杯火柴游戏
火柴游戏 [编程题](满分34分) 这是一个纵横火柴棒游戏.如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒.其规则是: 不能放置在已经放置火柴棒的地方(即只能在空格中放置). 火柴棒的 ...
- java实现第三届蓝桥杯源码变换
源码变换 这道题因为有一些html语言在编写的时候不会显示出来,所以就用代码格式把题目写出来 [编程题](满分22分) 超文本标记语言(即HTML),是用于描述网页文档的一种标记语言. HTML通过文 ...
- java实现第三届蓝桥杯排日程
排日程 [编程题](满分34分) 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天. 上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更. 此外,由于工作需要,还有如 ...
- java实现第三届蓝桥杯地址格式转换
地址格式转换 [编程题](满分21分) Excel是最常用的办公软件.每个单元格都有唯一的地址表示.比如:第12行第4列表示为:"D12",第5行第255列表示为"IU5 ...
- java实现第三届蓝桥杯数据压缩
数据压缩 某工业监控设备不断发回采样数据.每个数据是一个整数(0到1000之间).各个数据间用空白字符(空格,TAB或回车换行)分隔.这些数据以文本形式被存储在文件中. 因为大多数时候,相邻的采样间隔 ...
- java实现第三届蓝桥杯星期几
星期几 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历,windows ...
随机推荐
- 经典sql语句大全,【转载】
经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...
- 使用plupload实现多文件上传,自定义参数
下载地址:点击打开链接 1.在开发中可能需要用户附件上传的功能,实现批量上传功能其实就将多个上传任务放到一个集合中,分别上传. 2,使用plupload js插件可以很轻松的实现带参数的多文件上传 3 ...
- Winform GDI+绘图二:绘制旋转太极图
大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平 ...
- k8s安装部署成功
- vue中mixins的使用方法和注意点(详2)(异步请求的情况)
当混合里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,如下: mixin中 组件中 控制台 解决方案:不要返回结果而是直接返回异步函数 mixin中 组件中 ...
- scrapy请求发送详解
scrapy自动发送请求 对start_urls列表中存储的起始url进行过请求的发送并没有通过手动实现,但是在parse函数中还是获取到了响应数据,这是因为爬虫文件中的爬虫类继承到了Spider父类 ...
- mysql小白系列_09 mysql性能优化关键点
一 服务器参数调优,有哪些关键点? 1. 应用访问优化 优化方法 性能提升效果 优化成本 说明 减少数据访问能不访问就不访问-减少磁盘IO 1~1000 低 缓存服务器缓存mysql数据,Redis. ...
- linux -- 一般使用经验(四)
一.使用grep进行条件筛选(主要为日志) 1.grep -E '条件1|条件2|条件3' 文件名 (cat -n 文件.log |grep -E '2020-01-16 15:24:48|条件 ...
- Spring Boot 教程(2) - Mybatis
Spring Boot 教程 - Mybatis 1. 什么是Mybatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 J ...
- SVN创建分支的相关操作
目的是为了在项目中进行相应的功能操作的时候避免项目的报错还能进行还原 1.在相应的位置创建分支 项目过大的只在 功能的位置 进行创建分支 Angular的src 不要在其下面进行创建分支 他有严格的文 ...