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

C++ में दिए गए ऐरे में लगातार तत्वों के GCD से ऐरे बनाएं


मान लें हमारे पास n तत्वों का एक ऐरे A[] है। हमें एक और ऐरे B[] ढूंढना है, जिसका आकार n+1 हो, जैसे कि B[i] और B[i+1] का GCD A[i] हो। यदि कई समाधान हैं, तो उनमें से एक प्रिंट करें जिसका ऐरे योग न्यूनतम हो। इसलिए यदि A = [1, 2, 3], तो आउटपुट [1, 2, 6, 3] होगा।

जब A में केवल एक तत्व हो मान लें K, तो B = [K, K]। तो B[0] A[0] होगा। अब मान लें हम इंडेक्स i तक हो चुके हैं, तो हमने पहले ही इंडेक्स i प्रोसेस कर लिया है, और B[i+1] की गणना कर ली है। अब B[i+1] और B[i+2] का GCD = A[i+1], फिर B[i+2] और B[i+3] का GCD = A[i+2]। तो B[i+2] >= A[i+1], A[i+2] का LCM। चूंकि हम न्यूनतम योग चाहते हैं, तो हम B[i+2] का न्यूनतम मान चाहते हैं, इसलिए B[i+2] = A[i+2] और A[i+3] का LCM।

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;

int getLCM(int a, int b) {
    return (a * b) / __gcd(a, b);
}

void gcdArray(int A[], int n) {
    cout << A[0] << " ";
    for (int i = 0; i < n - 1; i++)
        cout << getLCM(A[i], A[i + 1]) << " ";
    cout << A[n - 1];
}

int main() {
    int A[] = {1, 2, 3};
    int n = sizeof(A) / sizeof(A[0]);
    cout << "Constructed array: ";
    gcdArray(A, n);
}

आउटपुट

Constructed array: 1 2 6 3
  1. - C++ में सरणी को पुनर्व्यवस्थित करें ताकि लगातार युग्म तत्वों के गुणनफल का योग न्यूनतम हो

    हमें एक धनात्मक पूर्णांक प्रकार की सरणी दी गई है, मान लीजिए, arr[] किसी भी दिए गए आकार की। कार्य है सरणी को इस तरह पुनर्व्यवस्थित करना कि जब हम एक तत्व को उसके वैकल्पिक तत्व से गुणा करें और फिर सभी परिणाम तत्वों को जोड़ें तो यह न्यूनतम योग लौटाए। विभिन्न इनपुट-आउटपुट परिदृश्य इनपुट - int arr[] = {2,

  1. - C++ प्रोग्राम में दी गई सरणी से लिंक्ड लिस्ट बनाना

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

  1. C++ में दिए गए इनऑर्डर ट्रैवर्सल से स्पेशल बाइनरी ट्री बनाना C++ में दिए गए इनऑर्डर ट्रैवर्सल से स्पेशल बाइनरी ट्री बनाना

    हमें एक सरणी arr[] दी गई है जिसमें एक बाइनरी ट्री का इनऑर्डर ट्रैवर्सल है। लक्ष्य उस सरणी से एक स्पेशल बाइनरी ट्री बनाना है। एक स्पेशल बाइनरी ट्री वह है जिसमें रूट नोड का वजन इसके बाएं और दाएं दोनों चाइल्ड के वजन से अधिक होता है। उदाहरण के लिए इनपुट int arr[] = {10, 20, 28, 40, 32, 31, 30} आउटपुट दि