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

C++ में सभी संभावित सब-एरेज में न्यूनतम LCM और GCD


मान लीजिए हमारे पास आकार N की एक सरणी arr है। इसमें N धनात्मक संख्याएं हैं। हमें सभी संभावित सबएरेज के न्यूनतम एलिमेंट्स ढूंढने हैं। मान लीजिए सरणी {2, 66, 14, 521} है, तो न्यूनतम LCM 2 है, और GCD 1 है।

हम इस समस्या को लालची दृष्टिकोण का उपयोग करके हल करेंगे। यदि हम एलिमेंट्स की संख्या घटाते हैं, तो LCM कम होगा, और यदि हम सरणी का आकार बढ़ाते हैं, तो GCD कम होगा। हमें सरणी से सबसे छोटा एलिमेंट ढूंढना होगा, जो एक एकल एलिमेंट है, वही आवश्यक LCM होगा। GCD के लिए, GCD सरणी के सभी एलिमेंट्स का GCD होगा।

उदाहरण

#include <iostream> #include <algorithm> using namespace std; int minimum_gcd(int arr[], int n) {    int GCD = 0;    for (int i = 0; i < n; i++)    GCD = __gcd(GCD, arr[i]);    return GCD; } int minimum_lcm(int arr[], int n) {    int LCM = arr[0];    for (int i = 1; i < n; i++)    LCM = min(LCM, arr[i]);    return LCM; } int main() {    int arr[] = { 2, 66, 14, 521 };    int n = sizeof(arr) / sizeof(arr[0]);    cout << "LCM: " << minimum_lcm(arr, n) << ", GCD: " << minimum_gcd(arr, n); }

आउटपुट

LCM: 2, GCD: 1

  1. - C++ में सरणी के न्यूनतम और अधिकतम तत्वों को पुनरावर्ती रूप से खोजें

    हमें एक पूर्णांक सरणी Arr[] इनपुट के रूप में दी गई है। लक्ष्य है पुनरावर्ती विधियों का उपयोग करके सरणी के बीच अधिकतम और न्यूनतम तत्वों को ढूंढना। चूंकि हम पुनरावर्तन का उपयोग कर रहे हैं, हम पूरी सरणी को तब तक ट्रैवर्स करेंगे जब तक हम लंबाई=1 तक नहीं पहुंच जाते, फिर A[0] लौटाते हैं जो आधार मामला बनात

  1. C++ में ट्री में सभी नोड्स तक जानकारी पास करने के लिए न्यूनतम पुनरावृत्तियों की संख्या C++ में ट्री में सभी नोड्स तक जानकारी पास करने के लिए न्यूनतम पुनरावृत्तियों की संख्या

    हमें n संख्या में नोड्स के साथ एक ट्री डेटा संरचना दी गई है। दिया गया ट्री एक रूट नोड और संबंधित चाइल्ड्स होगा जो किसी भी संख्या में हो सकते हैं और आगे चाइल्ड के किसी भी संख्या में चाइल्ड हो सकते हैं। कार्य ट्री के रूट नोड द्वारा ट्री में सभी नोड्स तक जानकारी पास करने के लिए आवश्यक न्यूनतम पुनरावृत्

  1. C++ में ट्री में सभी सेब इकट्ठा करने का न्यूनतम समय C++ में ट्री में सभी सेब इकट्ठा करने का न्यूनतम समय

    मान लीजिए हमारे पास n वर्टेक्स वाला एक अनडायरेक्टेड ट्री है जो 0 से n-1 तक नंबर किए गए हैं, जिनके वर्टेक्स में कुछ सेब हैं। हम ट्री के एक एज पर चलने में 1 सेकंड खर्च करते हैं। हमें वर्टेक्स 0 से शुरू करके ट्री में सभी सेब इकट्ठा करने और इस वर्टेक्स पर वापस आने में खर्च होने वाले न्यूनतम समय (सेकंड म