কম্পিউটার

C প্রোগ্রামে 1 এবং 0 এর একই সংখ্যা সহ পরবর্তী বৃহত্তর সংখ্যার বাইনারি উপস্থাপনা?


ধরুন আমাদের একটি বাইনারি সংখ্যা আছে, সেটি হল একটি সংখ্যা n এর প্রতিনিধিত্ব। আমাদেরকে এমন একটি সংখ্যার বাইনারি উপস্থাপনা খুঁজে বের করতে হবে যেটি সবচেয়ে ছোট কিন্তু n এর থেকে বড়, এবং এটিতে 0 এবং 1 সেকে একই সংখ্যা রয়েছে। সুতরাং সংখ্যাটি যদি 1011 (11 দশমিকে) হয়, তাহলে আউটপুট হবে 1101 (13)। এই সমস্যাটি পরবর্তী-পরিবর্তন গণনা ব্যবহার করে পাওয়া যেতে পারে। আসুন ধারণা পেতে অ্যালগরিদম দেখি।

অ্যালগরিদম

nextBin(bin) -

Begin
   len := length of the bin
   for i in range len-2, down to 1, do
      if bin[i] is 0 and bin[i+1] = 1, then
         exchange the bin[i] and bin[i+1]
         break
      end if
   done
   if i = 0, then there is no change, return
   otherwise j:= i + 2, k := len – 1
   while j < k, do
      if bin[j] is 1 and bin[k] is 0, then
         exchange bin[j] and bin[k]
         increase j and k by 1
      else if bin[i] is 0, then
         break
      else
         increase j by 1
      end if
   done
   return bin
End

উদাহরণ

#include <iostream>
using namespace std;
string nextBinary(string bin) {
   int len = bin.size();
   int i;
   for (int i=len-2; i>=1; i--) {
      if (bin[i] == '0' && bin[i+1] == '1') {
         char ch = bin[i];
         bin[i] = bin[i+1];
         bin[i+1] = ch;
         break;
      }
   }
   if (i == 0)
   "No greater number is present";
   int j = i+2, k = len-1;
   while (j < k) {
      if (bin[j] == '1' && bin[k] == '0') {
         char ch = bin[j];
         bin[j] = bin[k];
         bin[k] = ch;
         j++;
         k--;
      }
      else if (bin[i] == '0')
         break;
      else
         j++;
   }
   return bin;
}
int main() {
   string bin = "1011";
   cout << "Binary value of next greater number = " << nextBinary(bin);
}

আউটপুট

Binary value of next greater number = 1101

  1. পাইথনে n এর মতো একই সংখ্যক সেট বিট সহ উচ্চতর সংখ্যা খুঁজতে প্রোগ্রাম?

  2. পাইথনে x, y, z অক্ষরের i, j এবং k সংখ্যার সাথে পরবর্তী সংখ্যা বের করার জন্য প্রোগ্রাম

  3. বাইনারি উপস্থাপনা প্যালিনড্রোম কিনা তা পরীক্ষা করতে পাইথন প্রোগ্রাম?

  4. দুটি সংখ্যার বাইনারি উপস্থাপনা অ্যানাগ্রাম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম।