কম্পিউটার

একটি প্রদত্ত বেসে C++ প্যানডিজিটাল নম্বর


যে সংখ্যায় 0 থেকে ভিত্তি B পর্যন্ত সমস্ত সংখ্যা থাকে তাকে সেই বেসে প্যানডিজিটাল সংখ্যা বলে। যাইহোক, কিছু সংখ্যার সংখ্যা 1 থেকে 9 পর্যন্ত এবং শূন্যহীন প্যানডিজিটাল সংখ্যা বলা হয়। প্যানডিজিটাল নম্বরের কিছু উদাহরণ হল 0123456789, 0789564312, ইত্যাদি৷

এই টিউটোরিয়ালে, আমরা একটি সমস্যা নিয়ে আলোচনা করব যেখানে আমাদের একটি সংখ্যা এবং একটি বেস দেওয়া হয়েছে, এবং আমাদের পরীক্ষা করতে হবে যে প্রদত্ত বেসে নম্বরটি প্যানডিজিটাল কিনা, উদাহরণস্বরূপ −

Input: num = “9651723467380AZ”, base = 10
Output: YES
Explanation: num contains all the digits in the base 10 i.e from 0 to 9, so it is a pandigital number.

Input: num = “130264ABCDE745789”, base = 16
Output: NO
Explanation: num does not contain F(15) which is in the base 16 i.e from 0 to 15, so it is not a pandigital number.

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

এই সমস্যাটি সমাধান করার জন্য, আমরা সেট ব্যবহার করব এবং সেটে প্রতিটি সংখ্যা সন্নিবেশ করব কারণ আমাদের অনন্য মান সংরক্ষণ করতে হবে।

  • প্রতিটি অক্ষরকে একবারে নিয়ে স্ট্রিংয়ের মধ্য দিয়ে যান।

  • তারপর উপাদানটি একটি পূর্ণসংখ্যা বা বর্ণমালা কিনা তা পরীক্ষা করুন৷

  • যদি এটি একটি বর্ণমালা হয়, তাহলে 2-অঙ্কের প্রতিনিধিত্ব করতে বর্ণমালার অবস্থানে 10 যোগ করুন।

  • সেটে মান সংরক্ষণ করুন।

  • ট্রাভার্স করার পরে, সেটের আকার বেসের সমান কিনা তা পরীক্ষা করুন।

উদাহরণ

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

 
#include<bits/stdc++.h>
using namespace std;
int main(){
    int base = 10;
    char n[] = "9651723467380AZ";
    // Declaring set to store unique values.
    set<int, greater<int> > s;
    // Traversing through the string.
    for (int i = 0; i < strlen(n); i++){
        // Checking if element is Integer.
        if (n[i] >= '0' && n[i] <= '9')
           s.insert(n[i]- '0');
        // Checking if element is alphabet.
        else if (n[i] - 'A' <= base - 11)
           s.insert(n[i] - 'A' + 10) ;
    }
    // Checking if all the digits are present.
    if(s.size()==base)
       cout<< "YES";
    else
        cout<< "NO";
    return 0;
}

আউটপুট

YES

উপসংহার

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


  1. একটি প্রদত্ত সংখ্যা 4 এর শক্তি কিনা তা C++ এ খুঁজুন

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

  3. C++ ব্যবহার করে একটি প্রদত্ত সংখ্যার পুনরাবৃত্তি সংখ্যাগুলি সরান

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