এই টিউটোরিয়ালে, আমরা শিখতে যাচ্ছি কিভাবে নিয়মিত N-পার্শ্বযুক্ত বহুভুজে তৃতীয় ব্যক্তির অবস্থান খুঁজে বের করতে হয়।
আমরা একটি নিয়মিত N- পার্শ্বযুক্ত বহুভুজ দিয়েছি। এবং ইতিমধ্যে দুটি ভিন্ন পয়েন্টে দুই ব্যক্তি আছে। আমাদের কাজ হল তৃতীয় ব্যক্তিকে বসানোর জন্য তৃতীয় পয়েন্টটি খুঁজে বের করা যাতে প্রথম দুই ব্যক্তি এবং তৃতীয় ব্যক্তির মধ্যে দূরত্ব কম হয়।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
N এবং দুটি বিন্দু A এবং B শুরু করুন।
-
তৃতীয় ব্যক্তির অবস্থান শুরু করুন, এবং অবস্থান খুঁজে পেতে সর্বনিম্ন যোগফল।
-
1 থেকে N.
পর্যন্ত পুনরাবৃত্তি করুন-
যদি বর্তমান অবস্থান A বা B হয়, তাহলে এটি এড়িয়ে যান।
-
বর্তমান অবস্থান এবং A, B.
এর মধ্যে পরম পার্থক্যের যোগফল নির্ণয় করুন -
ন্যূনতম যোগফলের সাথে এটি তুলনা করুন।
-
যদি বর্তমান যোগফল ন্যূনতম যোগফলের চেয়ে কম হয়, তাহলে অবস্থান এবং সর্বনিম্ন যোগফল আপডেট করুন।
-
-
তৃতীয় ব্যক্তির অবস্থান প্রিন্ট করুন।
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h>
using namespace std;
int findThirdPersonStandingVertex(int N, int A, int B) {
int position = 0;
int minimum_sum = INT_MAX, sum;
for (int i = 1; i <= N; i++) {
// skipping the predefined vertices
if (i == A || i == B) {
continue;
}
else {
// length between the current vertext to A and B
sum = abs(i - A) + abs(i - B);
// checking whether the current sum is less than previous sum
if (sum < minimum_sum) {
// updating the minimum sum and position of vertext
minimum_sum = sum;
position = i;
}
}
}
return position;
}
int main() {
int N = 7, A = 5, B = 7;
cout << "Vertex: " << findThirdPersonStandingVertex(N, A, B) << endl;
return 0;
} আউটপুট
আপনি যদি উপরের প্রোগ্রামটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
Vertex: 6
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।