কম্পিউটার টিউটোরিয়াল

C++-এ দেওয়া অ্যারে-এর последователь উপাদানগুলোর GCD থেকে অ্যারে তৈরি

ধরি একটি অ্যারে A[] আছে n উপাদান সহ। আমাদের একটি অন্য অ্যারে 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. সি++ কোড: শর্ত অনুযায়ী অ্যারে B বের করুন

  2. C++-এ অ্যারে রি-অ্যারেঞ্জ করুন যাতে liên tiếp জোড়া গুণফলের যোগফল ন্যূনতম হয়

  3. অ্যারে থেকে লিংকড লিস্ট তৈরি (C++)

  4. ইনঅর্ডার ট্রভারসাল থেকে স্পেশাল বাইনারি ট্রি নির্মাণ C++-এ