18蓝桥杯java第三题,第三届蓝桥杯Java高职组决赛第三题

题目描述:

某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有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

分析:字符串处理,先将输入的字符串处理,字母和数字分开,然后模拟小车的动作,起点设为(0,0),终点设为(x,y)。然后4个方向,上左下右四个方向分别对应y+距离,x-距离,y-距离,x+距离。最后sqrt(x*x+y*y)得到结果,最后格式化输出保存两位小数【System.out.print("%.2f",结果);】

代码:

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class test_2 {

public static int x=0;

public static int y=0;

//处理输入字符串,将不同命令放到List中

public static List dispose(String str){

List list = new ArrayList();

String st = "";

for(int i=0;i

if(str.charAt(i)=='L' || str.charAt(i)=='R'){

list.add(""+str.charAt(i));

continue;

}

if(str.charAt(i)<='9' && str.charAt(i)>='0'){

if(i+1='0')){

st+=""+str.charAt(i);

}

else{

st+=""+str.charAt(i);

list.add(st);

st="";

}

}

}

return list;

}

public static void change(List list){

//1上,2左,3下,4右,默认是向前

int direction = 1;

for(String st:list){

if(st.equals("L")){

direction=direction%4+1;

}else if(st.equals("R")){

if(direction-1 == 0)

direction=4;

else

direction--;

}else{

move(direction,Integer.parseInt(st));

}

}

}

public static void move(int direction,int distance){

switch (direction) {

case 1:

y+=distance;

break;

case 2:

x-=distance;

break;

case 3:

y-=distance;

break;

case 4:

x+=distance;

break;

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

for(int i=0;i

x=0;y=0;

String st = scanner.next();

change(dispose(st));

System.out.printf("%.2f",Math.sqrt(x*x+y*y));

}

scanner.close();

}

}

第三届蓝桥杯Java高职组决赛第一题

题目描述: 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字. 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = ...

2012年第三届蓝桥杯Java本科组省赛试题解析

题目地址:https://wenku.baidu.com/view/326f7b4be518964bcf847c96.html?rec_flag=default    => 百度文档 题目及解析 ...

蓝桥杯java高职组

标题1: 猜年龄     美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中 国清华大学讲学.     一次,他参加某个重要会议,年轻的脸孔引人注目.于是 ...

第七届(16年)蓝桥杯java B组决赛真题 愤怒的小鸟 解题思路

愤怒小鸟 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车间相距 1000 米两火车 (不妨称A和B) 以时速 10米/秒 相对行驶. 愤怒的小鸟从A车出发,时速50米/秒,撞向B车,然后返回去撞 ...

第八届蓝桥杯java b组第六题

标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少. 比如:"abcdkkk" 和 "baabcdadabc",可以找 ...

第六届蓝桥杯java b组第三题

第三题 三羊献瑞 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容. 答案这个题目完全可以使用暴 ...

49-2015年第6届蓝桥杯Java B组

1.三角形面积 如图1所示.图中的所有小方格面积都是1. 那么,图中的三角形面积应该是多少呢? 请填写三角形的面积.不要填写任何多余内容或说明性文字.   image.png   计算方法: 8 * ...

46-2016 蓝桥杯 java B 组

1.煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤 ...

36-2018 蓝桥杯Java B组试题及答案

1:第几天2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 用excel算,答案125. 2.标题:方格计数 ...

随机推荐

数位DP入门

HDU 2089 不要62 DESC: 问l, r范围内的没有4和相邻62的数有多少个. #include #include #inc ...

paip&period;hibernate save 失败的解决

paip.hibernate save 失败的解决   打开log  debug  level,,看不见insert 代码...     Hibernate select max(ID).txt   ...

Ruiy自我识人做事领悟录ing

是坑总需要人去踩,谁踩谁收获! 做人做事分层分次,后方能至始及终不乱; 做人做事切记诚记信,宁他人负我,我定不负他人! 做人做事做力求清心寡欲; 安静做工,沉静学道;

JDBC概述以及几种驱动程序

JDBC(Java DataBase Connectivity,数据库连接)是用来执行SQL的Java API.开发人员可以使用这些标准API来连接和操作数据库 JDBC是Java的规范,考虑到规范的 ...

【转】Git 少用 Pull 多用 Fetch 和 Merge

原文网址:http://www.cnblogs.com/flying_bat/p/3408634.html 本文有点长而且有点乱,但就像Mark Twain Blaise Pascal的笑话里说的那样 ...

Swift协议(Protocol)

协议是为方法.属性等定义一套规范,没有具体的实现. 协议能够被类.结构体等具体实现(或遵守). protocol SomeProtocol { // protocoldefinition goes h ...

一个基于JRTPLIB的轻量级RTSP客户端&lpar;myRTSPClient&rpar;——实现篇:(三)用户接口层之RTSP命令

截至版本1.2.3,myRtspClient函数库共支持以下6个RTSP命令: (1)OPTIONS (2)DESCRIBE (3)SETUP (4)PLAY (5)PAUSE (6)TEARDOWN ...

&lbrack;IoC容器Unity&rsqb;第四回:使用范例

1.引言 前面几个章节介绍了Unity的基本使用,主要分为程序和配置文件两种方法的使用,可以参考一下链接, [IoC容器Unity]第一回:Unity预览 [IoC容器Unity]第二回:Lifeti ...

CentOS 7系统上制作Clonezilla(再生龙)启动U盘并克隆双系统

笔记本安装的是双系统:Win7 64位,CentOS 7 64位. 政采就是个巨大的坑,笔记本标配的是5400转的机械硬盘,开机时间常常要一至两分钟,软件运行起来时各种数据的读写也非常慢,忍无可忍,决 ...

数据库SQL语言学习--上机练习3(插入 更新 删除)

上机练习3 . 将一个新学生记录(学号::姓名:陈冬:性别:男:所在系:信息系:年龄:20岁)插入到Student表中: ALTER TABLE Student ,); UPDATE Student ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值