Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đếm số bước tối thiểu robot di chuyển theo 8 hướng bằng C++

Mô tả bài toán

Robot ở (x1,y1) muốn đến (x2,y2). Mỗi bước có thể di chuyển đến 1 trong 8 ô lân cận (ngang, dọc, chéo). Tìm số bước tối thiểu.

Ví dụ

(3,4) → (6,1): Δx=3, Δy=3 → max(3,3)=3 bước.

Thuật toán

Vì robot có thể đi chéo, số bước = max(|x2-x1|, |y2-y1|).

Code C++

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

int solve(int x1, int y1, int x2, int y2) {
    return max(abs(x2 - x1), abs(y2 - y1));
}

int main() {
    int x1=3, y1=4, x2=6, y2=1;
    cout << solve(x1, y1, x2, y2) << endl;
    return 0;
}

Đầu vào / Đầu ra

Input: 3, 4, 6, 1

Output: 3