কম্পিউটার

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] =A[i + 1] এর GCD, তারপর B[i + 2] এবং B[i + 3] =A[i + 2] এর GCD। সুতরাং 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++ কোড

  2. C++ এ ক্রমাগত জোড়া উপাদানের গুণফলের যোগফল কমাতে একটি বিন্যাস পুনর্বিন্যাস করুন

  3. C++ প্রোগ্রামে একটি প্রদত্ত অ্যারে থেকে লিঙ্কযুক্ত তালিকা তৈরি করুন

  4. C++ এ প্রদত্ত ইনঅর্ডার ট্রাভার্সাল থেকে বিশেষ বাইনারি ট্রি তৈরি করুন