日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯——机器人行走

發布時間:2023/12/13 编程问答 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

0.00

import java.util.ArrayList; import java.util.Scanner;public class 機器人行走 {/*** @param args*///初始朝向static int fang=1;//初始坐標static int x=0,y=0;//定義方向static int[][]ss={{0,1},{1,0},{0,-1},{-1,0}};public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);int n=scanner.nextInt();String[]list=new String[n];for (int i = 0; i <n; i++)list[i]=scanner.next();for (String string : list){Get(string);x=0;y=0;}}public static void Get(String str){ArrayList<String>list=new ArrayList<String>();//將字符與數字分開String temp1="";//零時存儲數字String temp2="";//零時存儲字符for (int i = 0; i < str.length(); i++){//如果當前獲取的字符屬于數字,則并入 temp1if(str.charAt(i)>='0'&&str.charAt(i)<='9'){temp1+=str.charAt(i)+"";if(i==str.length()-1)list.add(temp1);}//如果當前獲取的字符不屬于數字else{//判斷存儲數字的 temp1 是否屬于空if(temp1!=""){list.add(temp1);temp1="";}temp2=str.charAt(i)+"";list.add(temp2);}}//遍歷區分開來的隊列for (String s : list) {//如果不是方向鍵 則按照當前方向前進if(!s.equals("R")&&!s.equals("L")){int t=Integer.parseInt(s);run(t);}else{//如果是方向鍵則進行轉向 turn(s);}}//利用直角三角形的定理 算出長邊的長度double sum=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));System.out.printf("%.2f",sum);System.out.println();}//n 前進的距離static void run(int n){x+=ss[fang][0]*n;y+=ss[fang][1]*n;}//轉彎static void turn(String st){//如果是右方(順時針)則加一并取模4的值if(st.equals("R")){fang=(fang+1)%4;}//如果是左方(順時針)則加3并取模4的值else{fang=(fang+3)%4;}}}

原文鏈接:https://blog.csdn.net/qq_39020387/article/details/79739814

轉載于:https://www.cnblogs.com/welcom/p/10759039.html

總結

以上是生活随笔為你收集整理的蓝桥杯——机器人行走的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。