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

首頁 > 開發(fā) > Java > 正文

java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)機(jī)器人行走

2024-07-14 08:39:43
字體:
供稿:網(wǎng)友

某少年宮引進(jìn)了一批機(jī)器人小車。可以接受預(yù)先輸入的指令,按指令行動(dòng)。小車的基本動(dòng)作很簡單,只有3種:左轉(zhuǎn)(記為L),右轉(zhuǎn)(記為R),向前走若干厘米(直接記數(shù)字)。

例如,我們可以對(duì)小車輸入如下的指令:

15L10R5LRR10R20

則,小車先直行15厘米,左轉(zhuǎn),再走10厘米,再右轉(zhuǎn),...

不難看出,對(duì)于此指令串,小車又回到了出發(fā)地。

你的任務(wù)是:編寫程序,由用戶輸入指令,程序輸出每條指令執(zhí)行后小車位置與指令執(zhí)行前小車位置的直線距離。

【輸入、輸出格式要求】

用戶先輸入一個(gè)整數(shù)n(n<100),表示接下來將有n條指令。

接下來輸入n條指令。每條指令只由L、R和數(shù)字組成(數(shù)字是0~100之間的整數(shù))

每條指令的長度不超過256個(gè)字符。

程序則輸出n行結(jié)果。

每條結(jié)果表示小車執(zhí)行相應(yīng)的指令前后位置的直線距離。要求四舍五入到小數(shù)后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();  } }

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。 


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 明光市| 沁源县| 凤庆县| 托克逊县| 集安市| 万山特区| 印江| 文化| 东乌珠穆沁旗| 山东省| 肥西县| 罗甸县| 崇仁县| 平泉县| 潢川县| 龙山县| 定日县| 舟曲县| 沾益县| 大姚县| 乳源| 西乡县| 大渡口区| 纳雍县| 工布江达县| 翁牛特旗| 永昌县| 宁河县| 信阳市| 云和县| 永嘉县| 宿松县| 泾源县| 中超| 宁陵县| 大荔县| 顺平县| 保德县| 九龙城区| 香港 | 沙田区|