একটি N পার্শ্বযুক্ত বহুভুজে যদি দুটি শিশু A এবং B শীর্ষবিন্দুতে দাঁড়িয়ে থাকে তবে আমাদের শীর্ষস্থানীয় সংখ্যা নির্ধারণ করতে হবে যেখানে অন্য একজন ব্যক্তি দাঁড়ানো উচিত যাতে সেই ব্যক্তির দ্বারা A এবং B উভয়ে পৌঁছানোর জন্য ন্যূনতম সংখ্যক লাফের প্রয়োজন হয়। পি>
এখানে উল্লেখ্য দুটি শর্ত হল যে বহুভুজ শীর্ষবিন্দুগুলি ঘড়ির কাঁটার দিকে সংখ্যাযুক্ত এবং একাধিক উত্তর থাকলে আমরা সর্বদা সর্বনিম্ন সংখ্যাযুক্ত শীর্ষবিন্দু বেছে নেব৷
vertexPosition(int sides, int vertexA, int vertexB) নম্বর নেয়। বহুভুজের বাহুর এবং শীর্ষবিন্দু A এবং B এর অবস্থান। ফর লুপ 1 থেকে শুরু হয় এবং i যতক্ষণ না বাহুর সংখ্যার থেকে কম বা সমান হয় ততক্ষণ পর্যন্ত পুনরাবৃত্তি হয়। যদি i vertexA এবং vertexB এর সমান না হয় তাহলে i এবং vertex A এর মধ্যে এবং একইভাবে i এবং vertexB এর মধ্যে পরম পার্থক্য গণনা করা হয় এবং যথাক্রমে x এবং y তে সংরক্ষণ করা হয়।
int vertexPosition(int N, int vertexA, int vertexB){ int tempSum = INT_MAX; int sum = 0; int position = 0; for (int i = 1; i <= N; i++) { if (i != vertexA && i != vertexB){ int x = abs(i - vertexA); int y = abs(i - vertexB);
এরপরে আমরা x এবং y এর যোগফলকে sum ভেরিয়েবলে সংরক্ষণ করি এবং যোগফলটি tempSum থেকে কম কিনা তা পরীক্ষা করি। যদি এটি tempSum-এর থেকে কম হয় তবে বর্তমান সমষ্টি মানটি tempSum-এ বরাদ্দ করা হয় এবং বর্তমান সূচকের মান পজিশন ভেরিয়েবলে বরাদ্দ করা হয়। আমরা পরীক্ষা করি যে নতুন প্রাপ্ত যোগফল tempSum-এ সংরক্ষিত আগের যোগফলের চেয়ে কম বা if স্টেটমেন্টে নয় যাতে আমরা A এবং B থেকে সবচেয়ে কাছের অবস্থান N হতে পারে। লুপ শেষ হওয়ার পরে পজিশনটি ফেরত দেওয়া হয়।
sum = x + y; if (sum < tempSum){ tempSum = sum; position = i; } } } return position; }
উদাহরণ
নিয়মিত N পার্শ্বযুক্ত বহুভুজে তৃতীয় ব্যক্তির অবস্থান নির্ণয় করতে আমরা নিম্নলিখিত বাস্তবায়ন দেখি।
#include <iostream> using namespace std; int vertexPosition(int N, int vertexA, int vertexB){ int tempSum = INT_MAX; int sum = 0; int position = 0; for (int i = 1; i <= N; i++) { if (i != vertexA && i != vertexB){ int x = abs(i - vertexA); int y = abs(i - vertexB); sum = x + y; if (sum < tempSum){ tempSum = sum; position = i; } } } return position; } int main(){ int N = 6, vertexA = 2, vertexB = 4; cout << "The vertex on which N should stand = " << vertexPosition(N, vertexA, vertexB); return 0; }
আউটপুট
উপরের কোডটি নিম্নলিখিত আউটপুট −
তৈরি করবেThe vertex on which N should stand = 6