Computer >> Máy Tính >  >> Lập trình >> C ++

Vị trí của robot sau các chuyển động nhất định trong C ++


Trong bài toán này, chúng ta được đưa ra một robot di chuyển theo bốn hướng nhưng chỉ có một bước di chuyển. Các hướng là lên (‘U’), xuống (‘D’), trái (‘L’), phải (‘R’). Và chúng ta được cung cấp một chuỗi chứa các chữ cái đầu của các hướng của số. Nhiệm vụ của chúng tôi là in vị trí cuối cùng của rô bốt, với vị trí ban đầu của rô bốt là (0,0).

Hãy lấy một ví dụ để hiểu vấn đề

Đầu vào - đầu vào:‘LDRRUL’

Đầu ra - (0, 0)

Giải thích -

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)

Để giải quyết vấn đề này, chúng ta sẽ đếm tổng số chuyển động theo hướng trục x và trục y. Đối với tọa độ x, hãy tăng số lượng cho Di chuyển phải và giảm số lượng cho một di chuyển trái. Đối với tọa độ y, hãy tăng số lượng cho lần di chuyển lên và số lượng xuống cho lần di chuyển sang trái.

Ví dụ

Chương trình cho thấy việc triển khai giải pháp của chúng tôi

#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;
}

Đầu ra

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