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

C++ में दिए गए खंड की लंबाई से मध्य बिंदु खंड खोजें

इस समस्या में, हमें लाइन सेगमेंट की लंबाई का प्रतिनिधित्व करने वाले आकार m की एक सरणी arr[] दी गई है।

लाइन सेगमेंट 0 से arr[0] , arr[0] से arr[1] तक हैं। हमारा काम उस सेगमेंट को ढूंढना है जो सभी सेगमेंट के बीच में हो।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

arr[] = {5, 7, 13}

आउटपुट

3

स्पष्टीकरण

Segments are : (0, 5) , (5, 12), (12, 25)

समाधान दृष्टिकोण

समस्या को हल करने के लिए, हम रेखा के मध्य बिंदु को (arrSum/2) द्वारा ज्ञात करेंगे। यदि यह मध्य बिंदु किसी रेखा खंड का प्रारंभ या समाप्ति बिंदु है तो -1 प्रिंट करें। अन्यथा, खंड संख्या प्रिंट करें।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;
int findSegmentWithMidPoint(int n, int m, int segment_length[]) {
   double centerPoint = (1.0 * n) / 2.0;
   int sum = 0;
   int segment = 0;
   for (int i = 0; i < m; i++) {
      sum += segment_length[i];
      if ((double)sum == centerPoint) {
         segment = -1;
         break;
      }
      if (sum > centerPoint) {
         segment = i + 1;
         break;
      }
   }
   return segment;
}
int main() {
   int m = 3;
   int segment_length[] = { 5, 7, 13 };
   int arrSum = segment_length[0];
   for(int i = 0; i < m; i++)
      arrSum += segment_length[i];
   int ans = findSegmentWithMidPoint(arrSum, m, segment_length);
   cout<<"The segment number where middle point lies is "<<ans;
   return 0;
}

आउटपुट

The segment number where middle point lies is 3

  1. सी ++ में दिए गए सेट में मौजूद प्रत्येक नोड से सभी पहुंच योग्य नोड्स खोजें

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ और शिखर का एक सेट है; हमें दिए गए सेट में मौजूद प्रत्येक शीर्ष से सभी पहुंच योग्य नोड्स को ढूंढना है। तो, अगर इनपुट पसंद है तब आउटपुट [1,2,3] और [4,5] होगा क्योंकि ये दो जुड़े हुए घटक हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - नोड्स :=ग्राफ

  1. C++ में दिए गए आरंभिक वर्णों में से सबसे लंबे क्रमागत पथ की लंबाई ज्ञात कीजिए

    विभिन्न वर्णों का एक मैट्रिक्स दिया गया है। एक चरित्र से शुरू करते हुए हमें उन सभी पात्रों को पार करके सबसे लंबा रास्ता खोजना होगा जो वर्तमान चरित्र से बड़े हैं। वर्ण एक दूसरे के क्रमागत होते हैं। ई से शुरू होता है। सबसे लंबा रास्ता खोजने के लिए, हम डेप्थ फर्स्ट सर्च एल्गोरिथम का उपयोग करेंगे। D

  1. C++ में दी गई निर्भरता से कार्यों का क्रम ज्ञात करें

    मान लीजिए कि हमारे पास अलग-अलग कार्य हैं; इन कार्यों को 0 से n-1 तक लेबल किया गया है। कुछ कार्यों में पूर्वापेक्षाएँ कार्य हो सकते हैं, इसलिए एक उदाहरण के रूप में यदि हम कार्य 2 चुनना चाहते हैं तो हमें पहले कार्य 1 को समाप्त करना होगा, जिसे एक जोड़ी के रूप में दर्शाया गया है - [2, 1] यदि हमारे पास क