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

দেওয়া সমীকরণগুলোকে সन्तুষ্টকারী n ধনাত্মক পূর্ণসংখ্যা খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের তিনটি মান A, B এবং N দেওয়া আছে। আমাদের কাজ হল দেওয়া সমীকরণগুলোকে সन्तুষ্টকারী n ধনাত্মক পূর্ণসংখ্যা খুঁজে বের করা।

সমস্যা বর্ণনা - আমাদের N সংখ্যক ধনাত্মক মান বের করতে হবে যা দুটি সমীকরণ সन्तুষ্ট করে:

x1² + x2² + … + xn² ≥ A
x1 + x2 + … + xn ≤ B

যদি মানগুলো থাকে তবে প্রিন্ট করুন, অন্যথায় -১ প্রিন্ট করুন।

উদাহরণ

ইনপুট

N = 4, A = 65, B = 16

আউটপুট

1 1 1 8

ব্যাখ্যা

সমীকরণগুলো:
1² + 1² + 1² + 8² = 1 + 1 + 1 + 64 = 67 ≥ 65
1 + 1 + 1 + 8 = 11 < 16

সমাধানের পদ্ধতি

এই সমস্যার সহজ সমাধান হল বর্গ যোগফল ম্যাক্সিমাইজ করা। আইডিয়া হল একটি নম্বরকে প্রাইমারি নম্বর হিসেবে ব্যবহার করা বর্গ যোগফল ম্যাক্সিমাইজ করতে এবং অন্যদের ১ রাখা। এভাবে বর্গ যোগফল ম্যাক্সিমাইজ করা যায় এবং যোগফল শর্তও সन्तুষ্ট হয়।

প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void findNIntegers(int N, int A, int B) {
    vector<int> numbers;
    
    for (int i = 0; i < N - 1; i++)
        numbers.push_back(1);
    
    if (B - (N - 1) <= 0) {
        cout << "-1";
        return;
    }
    
    numbers.push_back(B - (N - 1));
    
    int vals = 0;
    for (int i = 0; i < N; i++)
        vals += numbers[i] * numbers[i];
    
    if (vals < A) {
        cout << "-1";
        return;
    }
    
    for (int i = 0; i < N; i++)
        cout << numbers[i] << " ";
}

int main() {
    int N = 4, A = 65, B = 17;
    cout << N << " positive integers that satisfy the given equations are ";
    findNIntegers(N, A, B);
    return 0;
}

আউটপুট

4 positive integers that satisfy the given equations are 1 1 1 14
  1. সি++ প্রোগ্রাম: দেওয়া শর্ত পূরণকারী a এবং b সংখ্যা খুঁজে বের করা

  2. সি++ প্রোগ্রাম: দিয়ে থাকা স্ট্রিং-এ "1(0+)1" প্যাটার্নের সব.matches খুঁজে বের করা

  3. C++-এ nCr যেন প্রদত্ত প্রাইম দ্বারা বিভাজ্য কিনা তা যাচাই করা

  4. C++ প্রোগ্রাম: দোয়া পয়েন্ট কভার করে সেরা ফিট রেক্ট্যাঙ্গল খুঁজে বের করা