কম্পিউটার

একটি প্রদত্ত নম্বর প্রদত্ত নম্বরে উপস্থাপন করা যেতে পারে কিনা তা পরীক্ষা করুন। C++-এ যেকোনো বেসে অঙ্কের সংখ্যা


ধরুন আমাদের একটি সংখ্যা n, এবং সংখ্যার সংখ্যা d। 2 থেকে 32 পর্যন্ত যেকোনো বেসে n সংখ্যাটিকে d সংখ্যার সংখ্যা হিসাবে উপস্থাপন করা যায় কিনা তা আমাদের পরীক্ষা করতে হবে। ধরুন n সংখ্যাটি 8 এবং d =4, তাহলে এটিকে বাইনারিতে 1000 হিসাবে উপস্থাপন করা যেতে পারে, এখানে d হল 4 .

ধারণাটি হল 2 থেকে 32 পর্যন্ত সমস্ত বেস একে একে চেক করা। বেস চেক করতে আমরা এই ধাপগুলি অনুসরণ করতে পারি।

  • যদি সংখ্যাটি ভিত্তির চেয়ে ছোট হয়, এবং সংখ্যা 1 হয়, তাহলে সত্য ফেরত দিন
  • যদি সংখ্যা একের বেশি হয় এবং সংখ্যাটি ভিত্তির চেয়ে বেশি হয়, তাহলে সংখ্যা/বেস করে সংখ্যা থেকে শেষ অঙ্কটি সরিয়ে ফেলুন, এইভাবে সংখ্যার সংখ্যা কমিয়ে দিন, তারপরে বারবার পুনরাবৃত্তি করুন৷
  • অন্যথায় মিথ্যা ফেরত দিন।

উদাহরণ

#include <iostream>
using namespace std;
bool isRepresentedInDDigits(int num, int d, int base) {
   if (d==1 && num < base)
      return true;
   if (d > 1 && num >= base)
      return isRepresentedInDDigits(num/base, --d, base);
      return false;
}
bool checkNumber(int num, int d) {
   // Check for all bases one by one
   for (int base=2; base<=32; base++)
      if (isRepresentedInDDigits(num, d, base))
         return true;
         return false;
}
int main() {
   int num = 8;
   int dig = 2;
   if(checkNumber(num, dig))
      cout << "Can be represented";
   else
      cout << "Can not be represented";
}

আউটপুট

Can be represented

  1. একটি সংখ্যাকে C++ এ 2টি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন

  2. একটি সংখ্যাকে C++ এ a^b হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

  3. একটি সংখ্যাকে C++ এ 2^x + 2^y হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন

  4. একটি প্রদত্ত সংখ্যার সংখ্যা যোগ করার জন্য C++ প্রোগ্রাম