机器人行走问题
来源:互联网 发布:地方门户网站源码 编辑:程序博客网 时间:2024/05/03 21:28
某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。
* 小车的基本动作很简单,只有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
* 小车的基本动作很简单,只有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
package part2;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Scanner;public class Test14 {public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("输入要输入的指令数:");int n = scan.nextInt();scan.nextLine();String[] ss = new String[n];System.out.println("请输入要输入的"+n+"条指令:");for(int i=0;i<n;i++)ss[i] = scan.nextLine();for(int i=0;i<n;i++){int x,y;//定义x,y,记录机器人的坐标,x=y=0;double dis = 0.0;//最终机器人到原点的距离ArrayList<Character> al = new ArrayList<Character>();al.add('S');//用集合模拟东西南北,二维坐标系。al.add('W');al.add('N');al.add('E');for(int j=0;j<ss[i].length();j++){//L100R50R10if(ss[i].charAt(j)=='L'){//向左转,al.add(al.remove(0));continue;}if(ss[i].charAt(j)=='R'){//向右转al.add(0,al.remove(3));continue;}int a = 0;String s = "";System.out.println(s);while(ss[i].charAt(j+a)>='0'&&ss[i].charAt(j+a)<='9'&&j+a<ss[i].length()){//取出数字部分。s+=ss[i].charAt(j+a);a++;}j = j+a-1;//改变增量jint b = Integer.parseInt(s);//把本次走的路程变成int型if((char)al.get(0)=='S')//横纵坐标的加减y += b;else if((char)al.get(0)=='W')x -= b;else if((char)al.get(0)=='N')y -= b;else if((char)al.get(0)=='E')x += b;}//格式化数据DecimalFormat formater = new DecimalFormat("#0.##");dis = Math.sqrt(Math.pow(Math.abs(x),2)+Math.pow(Math.abs(y),2));dis = Double.parseDouble(formater.format(dis));System.out.println(dis);}}}
- 机器人行走问题
- 机器人行走
- 机器人行走
- 机器人行走
- 机器人行走
- 机器人行走
- 机器人行走
- 机器人行走
- python -- 机器人行走步数问题
- “机器人行走问题”——蓝桥杯java决赛
- 行走的机器人
- 蓝桥杯---机器人行走
- 大题---机器人行走
- 蓝桥被+机器人行走
- 蓝桥杯 机器人行走
- 扫地机器人行走路线
- python -- 机器人行走
- python 程序控制NAO机器人行走
- 距离与相似性度量
- 从操作系统角度看可执行文件的装载和执行
- Xcode5编译archive文件并上传到app store
- cocos2d-X 节点(CCLabelBMFont.h)API
- javascript中call方法使用
- 机器人行走问题
- UVA 10635 Prince and Princess [序列无重复元素时 LCS转换成LIS问题求解 O(nlogn) ]
- 利用ganglia调优hadoop
- 【PAT Advanced Level】1018. Public Bike Management (30)
- Ubuntu下安装OpenSSH Server并在客户端远程连接Ubuntu(转)
- 接口 RandomAccess
- cocos2d-X 节点(CCLabelTTF.h)API
- 在MySql 5.0 的表里同时添加两个自动更新的timestamp字段
- 关于有时判断domin 中例如