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