एक N पक्षीय बहुभुज में यदि दो बच्चे A और B शीर्ष पर खड़े हैं तो हमें शीर्ष संख्या निर्धारित करने की आवश्यकता है जहां एक अन्य व्यक्ति को खड़ा होना चाहिए ताकि उस व्यक्ति द्वारा A और B दोनों तक पहुंचने के लिए आवश्यक न्यूनतम संख्या में छलांग लगाई जाए।पी>
यहां ध्यान देने योग्य दो शर्तें हैं कि बहुभुज के शीर्षों को घड़ी की दिशा में क्रमांकित किया जाता है और कई उत्तर होने की स्थिति में हम हमेशा सबसे कम संख्या वाले शीर्ष का चयन करेंगे।
vertexPosition(int sides, int vertexA, int vertexB) नहीं लेता है। बहुभुज के किनारों और शीर्ष ए और बी की स्थिति के लिए। लूप के लिए 1 से शुरू होता है और तब तक चलता है जब तक कि मैं पक्षों की संख्या से कम या बराबर नहीं होता। यदि 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 के योग को योग चर में सहेजते हैं और जांचते हैं कि योग tempSum से कम है या नहीं। यदि यह tempSum से कम है तो वर्तमान योग मान tempSum को सौंपा गया है और वर्तमान अनुक्रमणिका मान स्थिति चर को असाइन किया गया है। हम जांचते हैं कि प्राप्त की गई नई राशि tempSum में संग्रहीत पिछले योग से कम है या नहीं अगर कथन में है ताकि हम निकटतम स्थिति एन को ए और बी से वापस कर सकें। लूप समाप्त होने के बाद स्थिति को पुनरावृत्त करना वापस आ गया है।
sum = x + y; if (sum < tempSum){ tempSum = sum; position = i; } } } return position; }
उदाहरण
आइए नियमित एन पक्षीय बहुभुज पर तीसरे व्यक्ति की स्थिति निर्धारित करने के लिए निम्नलिखित कार्यान्वयन को देखें।
#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