কম্পিউটার

C++ এ দুটি প্রদত্ত সংখ্যার ক্ষমতার সমষ্টি সমস্ত পূর্ণসংখ্যা প্রিন্ট করুন


এই সমস্যায়, আমাদের দুটি সংখ্যা a এবং b এবং একটি পূর্ণসংখ্যা বাউন্ড দেওয়া হয়েছে এবং আমাদের বাইন্ডিংয়ের চেয়ে কম সমস্ত মান প্রিন্ট করতে হবে যা a এবং b এর বর্গের সমষ্টি। .

Bound >= ai + bj

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input: a=2, b=3, bound=8
Output: 2 3 4 5 7

এই সমস্যাটি সমাধান করার জন্য, আমরা 0 থেকে i এবং j দুটি ভেরিয়েবল ব্যবহার করে নেস্টেড লুপ ব্যবহার করব। বাইরের লুপের শেষ অবস্থা থাকবে xi =bound এবং ভিতরের লুপের শেষ অবস্থা থাকবেxi + yj> bound . অভ্যন্তরীণ লুপের প্রতিটি পুনরাবৃত্তির জন্য, আমরা একটি সাজানো তালিকায় xi + yi-এর মান সংরক্ষণ করব যাতে এই ধরনের সমস্ত মান রয়েছে। এবং তারপর শেষে তালিকার সমস্ত মান প্রিন্ট করুন।

উদাহরণ

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম -

#include <bits/stdc++.h>
using namespace std;
void powerSum(int x, int y, int bound) {
   set<int> sumOfPowers;
   vector<int> powY;
   int i;
   powY.push_back(1);
   for (i = y; i < bound; i = i * y)
      powY.push_back(i);
   i = 0;
   while (true) {
      int powX = pow(x, i);
      if (powX >= bound)
         break;
      for (auto j = powY.begin(); j != powY.end(); ++j) {
         int num = powX + *j;
         if (num <= bound)
            sumOfPowers.insert(num);
         else
            break;
      }
      i++;
   }
   set<int>::iterator itr;
   for (itr = sumOfPowers.begin(); itr != sumOfPowers.end(); itr++) {
      cout<<*itr <<" ";
   }
}
int main() {
   int x = 2, y = 3, bound = 25;
   cout<<"Sum of powers of "<<x<<" and "<<y<<" less than "<<bound<<" are :\n";
   powerSum(x, y, bound);
   return 0;
}

আউটপুট

Sum of powers of 2 and 3 less than 25 are −
2 3 4 5 7 9 10 11 13 17 19 25

  1. C++ এ একটি লিফ নোড থেকে k দূরত্বে থাকা সমস্ত নোড প্রিন্ট করুন

  2. দুটি সংখ্যা খুঁজুন যার যোগফল এবং GCD C++ এ দেওয়া আছে

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

  4. দুই নম্বর যোগ করার জন্য C++ প্রোগ্রাম