1. 程式人生 > >機器人行走( * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們)

機器人行走( * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們)

/**
 * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有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.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class 機器人行走 {
	static int direction;// 方向
	static int[] X = new int[] { 1, 0, -1, 0 };
	static int[] Y = new int[] { 0, 1, 0, -1 };
	static int x;
	static int y;
	static DecimalFormat dg = new DecimalFormat("0.00");
	

	public static void main(String[] args) {
          Scanner scan = new Scanner(System.in);
          int a  = scan.nextInt();
          List list = new ArrayList();
          for(int  i = 0;i<a;i++){
        	  String s  = scan.next();
        	  list.add(s);
          }
          jisuan(list);//經過若干步驟移動後小車的座標
          }

	private static void jisuan(List list) {
		for(int i = 0;i<list.size();i++){
			String s = list.get(i);
			char[]  c  = s.toCharArray();
			String ss = "";
			for(int j = 0;j< c.length;j++){
				if(c[j] >= '0'&&c[j] <= '9'){
					ss+=c[j];
				}
				else{
					if(ss!=""){
						getCount(ss);
						ss="";
					}
					getDirection(c[j]);
				}
			}
			if(ss!=""){
				getCount(ss);
				ss="";
			}
			
			System.out.println(dg.format(Math.sqrt(x*x + y*y)));
			x = 0 ;
			y = 0;
		}
		
	}
   //得到方向
	private static void getDirection(char c) {
		if(c=='L'){
			direction = (direction + 1)%4;
		}else{
			direction = (direction + 3)%4;
		}
		
	}
    //計算座標
	private static void getCount(String ss) {
		int a = Integer.parseInt(ss);
		x = x + X[direction]*a;
		y = y + Y[direction]*a;
		
	}
}
 
執行結果:
5
L100R50R10
3LLL5RR4L12
LL
100R
5L5L5L5
102.96
9.06
0.00
100.00
0.00


相關推薦

機器人行走( * 某少年宮引進了一批機器人小車。可以接受預先輸入指令,按指令行動。小車基本動作很簡單,只有3種:左轉(記為L)轉(記為R)向前走若干釐米直接記數字) 例如我們)

/** * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們可以對小車輸入如下的指令: 15L10R5LRR10R20 則,小車先

機器人行走 某少年宮引進了一批機器人小車。可以接受預先輸入指令,按指令行動。小車基本動作很簡單, 只有3種:左轉(記為L)轉(記為R)向前走若干釐米直接記數字)

/*機器人行走 * 【程式設計題】(滿分18分) 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單, 只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們可以對小車輸入如下的指令

.net面向物件幾點注意好久沒寫再寫已經開始方向加油吧!

一、類的定義          class前加一下訪問修飾符,不加預設private         類命名一般採用完整單詞,首字母大寫 二、類的成員(屬性,方法,索引器,事件,運算子,建構函

Dstream[Row] 資料批量匯入Mysql 並去重大致如果資料庫中有行資料本次執行若有一行與資料庫中的那行相同則不會再插入進去

def Save2Mysql(stateDStream: DStream[Row]): Unit = { stateDStream.foreachRDD { rdd => { rdd.foreachPartition(partitionRecord

路徑fuzz的一想法指令碼試驗掃一晚上掃出大廠商兩個漏洞

參考了之前的路徑fuzz的工具,例如豬豬俠的工具:https://github.com/ring04h/weakfilescan,這個工具主要就是先爬取網頁的路徑,然後再對每個路徑進行fuzz,這種思路跟以前的路徑fuzz的差別就在於可獲取更多存在的連結進行fuzz;而不單單只是進行對根目錄或者

A裡面載入webview activity 跳至 A activity返回鍵前一個A activity資料沒有

今天遇到的問題 A(裡面載入webview)  activity  跳轉至  A  activity,按返回鍵前一個A activity資料沒有了?() 如何解決的? 解決: webview重寫了 public bool

A裡面載入webview activity 跳至 A activity返回鍵前一個A activity資料沒有

今天遇到的問題 A(裡面載入webview)  activity  跳轉至  A  activity,按返回鍵前一個A activity資料沒有了?() 如何解決的? 解決: webview重寫了

解決Android Studio 將String類型保存.txt文件下button跳到文件管理器解決保存txt文件到文件管理後手機打開是亂碼的問題

判斷 text 文件管理器 length button director ioe support get 不知道為什麽保存文件後之前打開一直都OK,就突然打開看到變成亂碼了,最後解決了 關鍵:outStream.write(finalContent.getBytes("g

幫助方老師使用固態硬盤安裝win10150軟妹幣但是他賴賬

說明 pre 更改 計算 軟件工程 記得 重裝系統 32位 網站   作為一個計算機專業的,具體點是軟件工程,每次別人問自己是幹啥的,總會被帶入到對方的節奏:哦,能裝系統,會修電腦。。。   今天方老師(一起工作了4年多的曾經是個真正的老濕!搞藝術的!已經提了離職報告了,不

神戶制鋼坑500家企業 百年老店為何上邪路?企業經營再艱難也不能降低產品質量甚至偷工減料同樣適用於IT行業

目前 海外 自己 不銹鋼 但是 amp 數據 熱鬧 2015年 神戶制鋼這顆爛蘿蔔,拔出它之後帶出的泥越來越多。上周五社長川崎博也又開了記者會,再次道歉,而受到其數據造假影響的客戶數量也從200家飆升到500家。日本政府給神戶制鋼兩周時間調查,還要在一個月內公布原因和對策。

不是說朝聞道夕死可矣嗎如果你發現自己的學習模式願意學並且能堅持我覺得沒什麽能阻擋你征服軟件世界的腳步安曉輝大神的感悟

說我 服務器 摘錄 syn 給他 sync 外包 學習曲線 有限公司 從技術支持中途轉戰軟件開發,如今從事編程工作已十多有余,2014年CSDN博文大賽編程語言組冠軍、CSDN Qt論壇的版主安曉輝老師從今天開始,坐鎮CSDN社區問答欄目的 第十四期,屆時會接受廣大網友的提

爬蟲任務二爬取(用到htmlunit和jsoup)通過百度搜索引擎關鍵字搜取到的新聞標題和url並保存在本地文件中主體借鑒網上的資料

標題 code rgs aps snap one reader url 預處理 采用maven工程,免著到處找依賴jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

納德拉再造微軟市值如何重回第一陣營思維確實變不再是以windows中心擁抱其它各種平臺敢在主戰場之外找到適合自己的新戰場

暴力 div https 相關 htc 精神 數據庫 幸運 案例 有人說,現在的美國矽谷充滿了“咖喱味”。也有人說,矽谷已經變成“印度谷”。原因就在於,以微軟CEO薩提亞·納德拉、谷歌CEO桑達爾·

工作那些事十一談談碼農與農民工區別和發展之路 工作那些事十二如果哪一天沒有電腦 工作那些事十三再次失業

工作那些事系列連結快速通道,不斷更新中: 工作那些事(一)今年工作不好找 工作那些事(二)應聘時填寫個人資訊ABCD 工作那些事(三)什麼樣的公司能吸引你,什麼樣的公司適合你? 工作那些事(四)大公司VS小公司 工作那些事(五)談談專案資料整理和積累 工作那些事(六)談談

js裡的sort()對json資料一欄位進行排序超實用!!!

首先來看一下接口裡的資料,對哪一資料進行操作 { "hourList": [{ "DATA_DATE": "00", "USE_SUM": 9.58 }, { "DATA_DATE": "03", "USE_SUM": 23.18 }, { "DATA_DATE": "

()正則化為什麼能防止過擬合 正則化為什麼能防止過擬合重點地方標紅

正則化為什麼能防止過擬合(重點地方標紅了) 正則化方法:防止過擬合,提高泛化能力 在訓練資料不夠多時,或者overtraining時,常常會導致overfitting(過擬合)。其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小

電腦一開機記憶體共8G就用70%以上工作管理員裡面檢視沒有佔用記憶體高的程序原來是驅動問題

現象描述:        出現兩次這個問題,都是長時間開機後,出現記憶體佔用很高,重啟還是記憶體佔用很高,而且工作管理員裡面檢視,實際沒有程序佔用那麼高。 曾經試過很多種辦法,但是一樣的現象卻有不同的原因。 比如試過停掉superf

跨域圖片使用toDataURL遇坑最終還是解決

    這兩天接到一個需求,需要做一個圖片裁剪功能。找到了cropper.js,使用起來算是順手,在做到將截好的圖片以base64的形式上傳儲存的時候,突然遇到了一個之前沒有碰到過的問題,沒錯就是:圖片跨域問題。     網上搜鎖了一下跨域圖片使用toDat

Linux Export命令 以及 linux 怎麼檢視核心裡面是否編譯進某個驅動不是模組的驅動怎麼檢視

檢視核心已存在 驅動cat /lib/modules/$(uname -r)/modules.builtin 一、Windows 環境變數   1、在Windows 系統下,很多軟體安裝都需要配置環境變數,比如 安裝 jdk ,如果不配置環境變數,在非軟體安裝的目錄下執行javac 命令,將