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

C++ প্রোগ্রাম: সাবসেট যোগফল k এড়িয়ে সর্বোচ্চ সংখ্যা নির্বাচন

১ থেকে n পর্যন্ত সংখ্যা থেকে সর্বোচ্চ সংখ্যক ভিন্ন উপাদান বাছাই করতে হবে যাতে কোনো সাবসেটের যোগফল k না হয়।

সমাধানের ধাপসমূহ

(k+1)/2 থেকে k-1 পর্যন্ত এবং k+1 থেকে n পর্যন্ত সংখ্যাগুলো নিন। এগুলোর কোনো সাবসেটের যোগফল k হবে না।

উদাহরণ

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

void solve(int n, int k) { 
    for (int i = (k + 1) / 2; i <= k - 1; i++) 
        cout << i << ", "; 
    for (int i = k + 1; i <= n; i++) 
        cout << i << ", "; 
} 

int main() { 
    int n = 5, k = 3; 
    solve(n, k); 
    return 0; 
}

ইনপুট

5, 3

আউটপুট

2, 4, 5,

ব্যাখ্যা

k=3 হলে, ২ এবং ৪, ৫ নেওয়া হয়েছে। কোনো সাবসেটের যোগফল ৩ হয় না।

  1. C++-এ জেকেনডর্ফের থিওরেম (Zeckendorf's Theorem) প্রোগ্রাম

  2. C++-এ প্রথম n প্রাকৃতিক সংখ্যার বর্গের যোগফল (Sum of Squares)

  3. C++ প্রোগ্রাম: প্রাকৃতিক সংখ্যাগুলোর যোগফল (Sum of Natural Numbers)

  4. C++ প্রোগ্রাম: দুটি সংখ্যা যোগ করা (Addition)