কম্পিউটার

C++ এ প্রয়োজনীয় যোগফল থেকে 2 এর ক্ষমতা


এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া হয়েছে। আমাদের কাজ হল সংখ্যাটি প্রিন্ট করা যা 2 এর পাওয়ারে উঠলে সংখ্যাটি দেয়।

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

ইনপুট − 17

আউটপুট − 0, 4

ব্যাখ্যা − 17 =2 4 + 2 0 =16 + 1

এই সমস্যা সমাধানের জন্য, আমরা সংখ্যাটিকে 2 দিয়ে পুনরাবৃত্তভাবে ভাগ করব। এই পদ্ধতিতে, প্রতিটি সংখ্যাকে 2 এর শক্তি হিসাবে উপস্থাপন করা যেতে পারে। এই পদ্ধতিটি সংখ্যাটিকে তার বাইনারি সমতুল্যে রূপান্তর করতে ব্যবহৃত হয়।

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
void sumPower(long int x) {
   vector<long int> powers;
   while (x > 0){
      powers.push_back(x % 2);
      x = x / 2;
   }
   for (int i = 0; i < powers.size(); i++){
      if (powers[i] == 1){
         cout << i;
         if (i != powers.size() - 1)
            cout<<", ";
      }
   }
   cout<<endl;
}
int main() {
   int number = 23342;
   cout<<"Powers of 2 that sum upto "<<number<<"are : ";
   sumPower(number);
   return 0;
}

আউটপুট

Powers of 2 that sum upto 23342are : 1, 2, 3, 5, 8, 9, 11, 12, 14

  1. C++ এ মিতব্যয়ী নম্বর

  2. অন্যদের ক্ষমতায় একটি সংখ্যার C++ প্রতিনিধিত্ব

  3. C++ পেন্টাটোপ নম্বর

  4. একটি সংখ্যাকে C++ এ 2-এর অ-শূন্য শক্তির সমষ্টি হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন