কম্পিউটার

C++ এ ন্যূনতম সম্ভাব্য ছদ্ম-বাইনারী সংখ্যার যোগফল হিসাবে একটি সংখ্যাকে প্রতিনিধিত্ব করুন


এই টিউটোরিয়ালটি ন্যূনতম সিউডো-বাইনারী সংখ্যার যোগফল হিসাবে একটি সংখ্যার উপস্থাপনা নিয়ে আলোচনা করবে। ছদ্ম-বাইনারী সংখ্যা হল এমন সংখ্যা যা শুধুমাত্র বাইনারি সংখ্যার সমন্বয়ে গঠিত, যেমন, 0 এবং 1। ছদ্ম-বাইনারী সংখ্যার উদাহরণ হল 00, 11, 10, 100, 111, 1011, ইত্যাদি।

নীচে ছদ্ম-বাইনারী সংখ্যার যোগফল হিসাবে উপস্থাপিত সংখ্যার কিছু উদাহরণ রয়েছে।

Input : 23
Output : 11 + 11 + 1
Explanation : 23 = 11 + 11 + 1, sum of pseudo-binary numbers(11, 11, 1) is 23.

Input : 50
Output : 10 + 10 + 10 + 10 + 10

সমাধান খোঁজার পদ্ধতি

N প্রতিনিধিত্ব করার জন্য ন্যূনতম ছদ্ম-বাইনারী সংখ্যাগুলি খুঁজে বের করার জন্য নীচে একটি সেরা পদ্ধতি রয়েছে।

  • একটি সংখ্যা X নিন এবং N সংখ্যার সংখ্যা অনুসারে এর সংখ্যাগুলি 1 বা 0 এ আপডেট করুন৷

  • N,

    এর প্রতিটি স্থানে ডিজিট চেক করুন
    • যদি এটি 0 হয়, তাহলে X-এর সেই স্থানটিকে 0-তে আপডেট করুন।

    • যদি এটি শূন্য না হয়, X-এর সেই স্থানটিকে 1-এ আপডেট করুন।

    • ধরা যাক N =32, তাহলে X হবে 11

  • তাহলে X হবে একটি সিউডো-বাইনারী সংখ্যা।

  • এখন X দ্বারা N হ্রাস করুন এবং N শূন্য না হওয়া পর্যন্ত ধাপ 1 পুনরাবৃত্তি করুন৷

উদাহরণ

উপরের পদ্ধতির জন্য C++ কোড

#include<iostream>
using namespace std;
int main(){
   int N = 51;
   // find a pseudo-binary number until N becomes 0.
   cout << "pseudo-binary representation of " << N << " is: ";
   while (N > 0){                
      // finding X which contains 0's and 1's according to N.
      int temp = N;
      int X = 0, bit = 1;
      // checking each place of N for zero or non-zero.
      while (temp!=0){
      int last_dig = temp % 10;
      temp = temp / 10;
      if (last_dig != 0)
         X += bit;
         bit *= 10;
      }
      // printing one pseudo-binary number.
      cout << X << " ";
      // Updating N by subtracting with X.
      N = N - X;
       
   }
   return 0;
}

আউটপুট

pseudo-binary representation of 51 is: 11 10 10 10 10

কোড বোঝা

  • এন নেওয়ার জন্য একটি বাইরের সময় লুপ এবং X খুঁজে বের করার জন্য প্রতিটি জায়গায় অঙ্ক বাছাই করা।

  • আমরা টেম্প ভেরিয়েবলের প্রতিটি স্থান চেক করার জন্য N এবং ইনার লুপ দিয়ে টেম্প ভেরিয়েবলের মান আপডেট করছি এবং পরিবর্তনশীল X-এর সেই জায়গাটি আপডেট করছি।

  • X এর মুদ্রণ মান কারণ এটি একটি ছদ্ম-বাইনারী সংখ্যা।

  • আমরা X এর সাথে বিয়োগ করে এবং N 0 না হওয়া পর্যন্ত আবার বাইরের লুপে গিয়ে N আপডেট করি।

উপসংহার

এই টিউটোরিয়ালে, আমরা আলোচনা করেছি কিভাবে আমরা একটি সংখ্যাকে ন্যূনতম সম্ভাব্য ছদ্ম-বাইনারী সংখ্যার যোগফল হিসাবে উপস্থাপন করতে পারি। আমরা সমস্ত ছদ্ম-বাইনারী সংখ্যা খুঁজে বের করার পদ্ধতি নিয়ে আলোচনা করেছি। আমরা এর জন্য C++ কোড নিয়েও আলোচনা করেছি, যা আমরা C, Java, Python, ইত্যাদির মতো অন্য যেকোনো প্রোগ্রামিং ভাষায় লিখতে পারি। আমরা আশা করি এই টিউটোরিয়ালটি আপনার কাজে লাগবে।


  1. সি++ এ ডুডেনি নম্বর

  2. C++ এ ফিবোনাচি সংখ্যার বর্গক্ষেত্রের সমষ্টি

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

  4. একটি সংখ্যাকে C++ এ পরপর সংখ্যার যোগফল হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন