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

Chương trình C ++ để tìm số bước tối thiểu cần thiết để di chuyển từ đầu đến cuối

Giả sử chúng ta có một tọa độ (x, y). Trên lưới 2D, rô bốt đang ở vị trí (0, 0) và muốn tiếp cận (x, y). Nó có thể di chuyển lên, xuống, sang trái, sang phải hoặc ở tại ô hiện tại. Nó muốn đến đích với các lệnh tối thiểu nhất có thể. Chúng tôi phải đếm số bước cần thiết.

Vì vậy, nếu đầu vào là x =3; y =4, thì đầu ra sẽ là 7

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

return x + y + minimum of |x - y|, |x - y + 1|, and |x - y - 1|

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;

int solve(int x, int y) {
   return x + y + min(abs(x - y), min(abs(x - y + 1), abs(x - y - 1)));
}
int main() {
   int x = 3;
   int y = 4;
   cout << solve(x, y) << endl;
}

Đầu vào

3, 4

Đầu ra

7