কম্পিউটার

আগের সংখ্যাটি C++ এ 1 এর পরিপূরকের মতো


এই সমস্যায়, আমরা একটি পূর্ণসংখ্যা n দেওয়া হয়. আমাদের কাজ হল আবহাওয়া পরীক্ষা করা যে পূর্বের সংখ্যাটি সংখ্যাটির 1 এর পরিপূরকের সমান।

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

Input: 12
Output: No
Explanation: (12)10 = (1100)2
Preceding number 11 = (1011)2
1’s complement of 12 = (0011)2
Input: 4
Output: Yes
Explanation: 4 = (100)2
Preceding number 3 = (011)2
1’s complement of 12 = (011)2

এই সমস্যাটি সমাধান করার জন্য, আমরা একটি সহজ পদ্ধতি ব্যবহার করতে পারি যা পূর্ববর্তী সংখ্যা এবং সংখ্যাটির 1 এর পরিপূরক তুলনা করে।

এই পদ্ধতিটি সহজ কিন্তু স্থান এবং সময় খরচ করে। সময় জটিলতা:O(n)

একটি কার্যকর সমাধান হতে পারে সাধারণ পদ্ধতি ব্যবহার করে যা আমরা সমস্যার সমাধান করতে চাই। এখানে, শুধুমাত্র যে সংখ্যাটি 2-এর ঘাত, সেই সংখ্যাটি শর্ত পূরণ করবে অর্থাৎ আগের সংখ্যাটি 1-এর পরিপূরকের সমান৷

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

উদাহরণ

#include <iostream>
using namespace std;
bool sameBits(unsigned long int n){
   if ((n & (n - 1)) == 0)
      return true;
   return false;
}
int main(){
   unsigned long int n = 64;
   if(sameBits(n))
      cout<<"Both are the same";
   else
      cout<<"Both aren't the same";
   return 0;
}

আউটপুট

Both are the same

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

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

  3. C++ এ একজনের পূর্ণসংখ্যার পরিপূরক খুঁজুন

  4. C++ এ অ্যাডাম নম্বর