কম্পিউটার

একটি সংখ্যা C++ এ ব্ল্যাক কিনা তা পরীক্ষা করুন


এখানে আমরা দেখব একটি সংখ্যা ব্ল্যাক কি না। একটি সংখ্যাকে অন্ধকার বলা হয় যদি এটি একটি ধনাত্মক সংখ্যা x এর যোগফল হিসাবে উপস্থাপন করা না যায় এবং x এ বিট গণনা সেট করা যায়। সুতরাং x + set_bit_count(x) n এর সমান নয়, কোনো অ-ঋণাত্মক সংখ্যা x এর জন্য।

ধারণাটি খুবই সহজ, যদি সেট বিট গণনা + সংখ্যাটি সংখ্যার মতো না হয়, তাহলে সেটি হল ব্ল্যাক, অন্যথায় এটি নয়৷

উদাহরণ

#include <iostream>
using namespace std;
int set_bit_count(int x) {
   unsigned int bit_count = 0;
   while (x != 0) {
      x &= (x - 1);
      bit_count++;
   }
   return bit_count;
}
bool isBleakNumber(int n) {
   for (int i = 1; i < n; i++)
   if (i + set_bit_count(i) == n)
      return false;
      return true;
}
int main() {
   isBleakNumber(3) ? cout << "Yes\n" : cout << "No\n";
   isBleakNumber(4) ? cout << "Yes\n" : cout << "No\n";
}

আউটপুট

No
Yes

  1. একটি সংখ্যা C++ এ অন্য একটি সংখ্যার শক্তি কিনা তা পরীক্ষা করুন

  2. একটি বড় সংখ্যা C++ এ 20 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন

  3. C++ এ N একটি পঞ্চভুজ সংখ্যা কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. আর্মস্ট্রং নম্বর চেক করতে C++ প্রোগ্রাম