특정 청소년 궁전은 로봇 자동차의 배치를 소개했습니다. 사전에 입력 한 지침을 받아들이고 팔로우 할 수 있습니다. 자동차의 기본 움직임은 매우 간단합니다. 3 가지 유형 만 있습니다 : 좌회전 (L로 기록), 우회전 (R로 기록) 및 몇 센티미터 (직접 기록)를 걸어 가십시오.
예를 들어, 우리는 다음 명령을 차에 입력 할 수 있습니다.
15L10R5LRR11R20
그런 다음 차는 먼저 15cm 똑바로 똑바로 똑바로 세우고 좌회전 한 다음 10cm를 걷고 우회전하십시오.
이 명령 문자열의 경우 자동차가 시작점으로 돌아 왔음을 알기가 어렵지 않습니다.
귀하의 작업은 다음과 같습니다.
[입력 및 출력 형식 요구 사항]
사용자는 먼저 정수 n (n <100)을 입력하여 다음에 n 지침이 있음을 나타냅니다.
다음으로 N 지침을 입력하십시오. 각 명령어는 l, r 및 숫자로 구성됩니다 (숫자는 0에서 100 사이의 정수입니다)
각 명령어의 길이는 256 자 이하입니다.
프로그램은 n 결과 라인을 출력합니다.
각 결과는 해당 명령을 실행할 때 캐리지의 전면 위치와 후면 위치 사이의 직선 거리를 나타냅니다. 소수점 이하로 반올림이 필요합니다.
예 : 사용자 입력 :
5
L100R50R10
3LLL5RR4L12
ll
100R
5L5L5L5
그런 다음 프로그램 출력 :
102.96
9.06
0.00
100.00
0.00
암호:
java.util.*; 클래스 Fushu {public double Real; 공개 이중 이미지; public fushu () {real = 0; 이미지 = 0; } public fushu (Double R, Double I) {real = r; 이미지 = i; } public fushu dot (fushu x) {fushu r = new fushu (); R.Real = Real * X.Real- 이미지 * X.Image; r.Image = real * x.image + image * x.real; RETOR R; } public fushu dot (double r, double i) {fushu t = new fushu (); t.real = real * r- 이미지 * i; t.Image = real * i + image * r; 반환 t; }} 클래스 로봇 {private int x = 0; 개인 int y = 0; Private Fushu Dir = New Fushu (1,0); 공개 void walk (문자열 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; 합 = 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)은 예외 {robot t = new Robot (); T.Walk ( "3R4"); t.show (); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.