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

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


इस समस्या में, हमें आकार m की एक सरणी arr[] दी गई है जो रेखा खंडों की लंबाई को दर्शाती है।

रेखा खंड 0 से arr[0], arr[0] से arr[1] आदि तक होते हैं। हमारा कार्य उस खंड को खोजना है जो सभी खंडों के मध्य में है।

आइए एक उदाहरण से समझते हैं:

इनपुट

arr[] = {5, 7, 13}

आउटपुट

3

व्याख्या

खंड हैं: (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. C++ में दिए गए सेट में मौजूद हर नोड से पहुंच योग्य सभी नोड्स खोजें C++ में दिए गए सेट में मौजूद हर नोड से पहुंच योग्य सभी नोड्स खोजें

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

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

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

  1. - C++ में दिए गए निर्भरताओं से कार्यों का क्रम खोजें

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