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

โปรแกรม C++ เพื่อค้นหาจำนวนขั้นตอนขั้นต่ำที่จำเป็นในการย้ายตั้งแต่ต้นจนจบ


สมมติว่าเรามีพิกัด (x, y) บนตาราง 2D หุ่นยนต์อยู่ที่ตำแหน่ง (0, 0) และต้องการเข้าถึง (x, y) มันสามารถเลื่อนขึ้น ลง ซ้าย หรือขวา หรืออยู่ที่เซลล์ปัจจุบัน มันต้องการที่จะไปถึงปลายทางด้วยคำสั่งที่น้อยที่สุด เราต้องนับจำนวนก้าวที่จำเป็น

ดังนั้น ถ้าอินพุตเป็น x =3; y =4 แล้วผลลัพธ์จะเป็น 7

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

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

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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

อินพุต

3, 4

ผลลัพธ์

7