Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में नियमित एन पक्षीय बहुभुज पर तीसरे व्यक्ति की स्थिति निर्धारित करें?

एक 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

  1. C++ . में भूलभुलैया III

    मान लीजिए कि खाली जगह और दीवारों के साथ एक भूलभुलैया है और उस भूलभुलैया में एक गेंद भी है। गेंद ऊपर (यू), नीचे (डी), बाएं (एल) या दाएं (आर) दिशाओं को लुढ़क कर खाली जगहों से जा सकती है, लेकिन यह दीवार से टकराने तक लुढ़कती रहती है। जब गेंद रुकती है, तो वह अगली दिशा चुन सकती है। उस भूलभुलैया में एक छेद

  1. C++ . में एक वृत्त पर पूर्णतः विपरीत व्यक्ति की स्थिति

    इस समस्या में, हमें दो पूर्णांक N और M दिए गए हैं। एक वृत्त है और उस पर N लोग खड़े हैं। एम व्यक्ति की स्थिति को दर्शाता है। हमारा काम एम के विपरीत व्यक्ति की स्थिति को प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - एन =6, एम =3 आउटपुट -6 स्पष्टीकरण - इस समस्या को हल करने के

  1. C++ में मैट्रिक्स में अंतिम सेल स्थिति

    मान लीजिए कि हमारे पास एक स्ट्रिंग के रूप में कमांड का एक सेट है, स्ट्रिंग में चार दिशाओं के लिए चार अलग-अलग अक्षर होंगे। ऊपर के लिए यू, नीचे के लिए डी, बाएं के लिए एल और दाएं के लिए आर। हमारे पास प्रारंभिक सेल स्थिति (x, y) भी है। दिए गए आदेशों का पालन करने के बाद मैट्रिक्स में ऑब्जेक्ट की अंतिम से