Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตำแหน่งของหุ่นยนต์หลังจากให้การเคลื่อนไหวใน C++


ในปัญหานี้ เราได้รับหุ่นยนต์ที่เคลื่อนที่ได้ทั้งสี่ทิศทางแต่เคลื่อนที่เพียงครั้งเดียว ทิศทางขึ้น('U'), ลง('D'), ซ้าย('L'), ขวา('R') และเราได้รับสตริงที่มีชื่อย่อของทิศทางของตัวเลข งานของเราคือพิมพ์ตำแหน่งสุดท้ายของหุ่นยนต์ โดยให้ตำแหน่งเริ่มต้นของหุ่นยนต์คือ (0,0)

มาดูตัวอย่างทำความเข้าใจปัญหากัน

ป้อนข้อมูล − อินพุต:'LDRRUL'

ผลลัพธ์ − (0, 0)

คำอธิบาย

L (left) : (0,0) -> (-1,0)
D (down) : (-1,0) -> (-1, -1)
R (right) : (-1, -1) -> (0, -1)
R (right) : (0, -1) -> (1, -1)
U(up) : (1, -1) -> (1, 0)
L(left) : (1, 0) -> (0, 0)

เพื่อแก้ปัญหานี้ เราจะนับการเคลื่อนที่ทั้งหมดในแกน x และทิศทางแกน y สำหรับพิกัด x ให้เพิ่มจำนวนสำหรับการเคลื่อนที่ไปทางขวา และลดจำนวนการเคลื่อนไปทางซ้าย สำหรับพิกัด y เพิ่มจำนวนสำหรับการเลื่อนขึ้นและลงสำหรับการเลื่อนด้านซ้าย

ตัวอย่าง

โปรแกรมแสดงการใช้งานโซลูชันของเรา

#include <iostream>
#include <string.h>
using namespace std;
void robotMoved(string move) {
   int xAxis, yAxis;
   int l=move.size();
   for (int i = 0; i < l; i++) {
      if (move[i]=='U')
         yAxis++;
      else if (move[i]=='D')
         yAxis--;
      else if (move[i]=='L')
         xAxis--;
      else if (move[i]=='R')
         xAxis++;
   }
   cout<<"Final Position of the robot is : ("<<xAxis<<", "<<yAxis<<")"<<endl;
}
int main() {
   string move="URLLDDRRUDUDDRU";
   robotMoved(move);
   return 0;
}

ผลลัพธ์

Final Position of the robot is : (32744, -274873553)