国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java數據結構實現機器人行走

2024-07-13 10:17:31
字體:
來源:轉載
供稿:網友

某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有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.*;  class FuShu {  public double real;  public double image;    public FuShu()  {   real = 0;   image = 0;  }    public FuShu(double r, double i)  {   real = r;   image = i;  }    public FuShu dot(FuShu x)  {   FuShu r = new FuShu();   r.real = real * x.real - image * x.image;   r.image = real * x.image + image * x.real;   return r;  }    public FuShu dot(double r, double i)  {   FuShu t = new FuShu();   t.real = real * r - image * i;   t.image = real * i + image * r;   return t;  }  }  class Robot {  private int x = 0;  private int y = 0;  private FuShu dir = new FuShu(1,0);    public void walk(String s)  {   int sum = 0;   for(int i=0; i<s.length(); i++)   {    char c = s.charAt(i);    if(c=='L' || c=='R')    {     x += sum * dir.real;     y += sum * dir.image;     sum = 0;     if(c=='L')      dir = dir.dot(0,1);     else      dir = dir.dot(0,-1);         }    else     sum = sum * 10 + (c-'0');       }      x += sum * dir.real;   y += sum * dir.image;    }    public void show()  {   double d = Math.sqrt(x*x + y*y);   System.out.println(x+","+y + " dir: " + dir.real + "," + dir.image + ", d=" + d);  } }  public class Walk {  public static void main(String[] args) throws Exception  {   Robot t = new Robot();   t.walk("3R4");   t.show();  } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。 


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东阳市| 叙永县| 山丹县| 黑水县| 增城市| 通许县| 铜鼓县| 葵青区| 上杭县| 湾仔区| 秦皇岛市| 特克斯县| 巩义市| 津市市| 渭南市| 连南| 沛县| 浦江县| 特克斯县| 庄浪县| 新野县| 浠水县| 黄骅市| 精河县| 潼南县| 稻城县| 马龙县| 万年县| 阿图什市| 合肥市| 丰顺县| 金乡县| 木兰县| 辉县市| 东山县| 丰城市| 正镶白旗| 阿拉善盟| 榆林市| 清新县| 榆社县|