কম্পিউটার

প্যানডিজিটাল সংখ্যা কি? C++ ব্যবহার করে প্যানডিজিটাল নম্বর খোঁজার পদ্ধতি


প্যানডিজিটাল নম্বর − গণিতে, একটি প্যানডিজিটাল সংখ্যা হল একটি পূর্ণসংখ্যা যা একটি প্রদত্ত বেসে তার উল্লেখযোগ্য সংখ্যাগুলির মধ্যে প্রতিটি সংখ্যা অন্তত একবার বেসে ব্যবহৃত হয়৷

প্যানডিজিটাল সংখ্যা হল এমন পূর্ণসংখ্যা যেখানে প্রতিটি সংখ্যা অন্তত একবার বেস হিসাবে ব্যবহৃত হয়।

উদাহরণস্বরূপ, 1245678 একটি প্যানডিজিটাল নম্বর।

এই সমস্যা সমাধানের পদ্ধতি

  • একটি সংখ্যা এবং একটি ভিত্তি ইনপুট নিন৷

  • বেস চেক করুন যদি এটি 2-এর কম এবং 10-এর বেশি হয় তবে 1 ফেরত দিন অন্যথায় নম্বরটি প্যানডিজিটাল কিনা তা পরীক্ষা করুন।

  • একটি পূর্ণসংখ্যা ফাংশন is_pandigital(long long n, int base) ইনপুট হিসাবে একটি সংখ্যা এবং একটি বেস নেয়৷

  • সংখ্যায় উপস্থিত সমস্ত অঙ্কের জন্য গণনা করুন এবং গণনা বৃদ্ধি করুন।

  • একটি খালি আছে কিনা তা দেখতে সমস্ত অঙ্কের উপর পুনরাবৃত্তি করুন, তাই মিথ্যা ফেরত দিন।

  • একটি পূর্ণসংখ্যা ফাংশন is_zeroless (লম্বা লং n, int বেস) ইনপুট এবং সংখ্যা এবং এর বেসকে ইনপুট হিসাবে নেয় এবং অঙ্কটি পাওয়া গেলে রিটার্ন করে।

  • সমস্ত সংখ্যার উপর পুনরাবৃত্তি করে খুঁজে বের করুন যদি কোন সংখ্যা খালি থাকে তাহলে 0 ফেরত আসবে।

  • অবশেষে, ফাংশন check_number(দীর্ঘ লং সংখ্যা, int base) ইনপুট হিসাবে সংখ্যা এবং এর বেস নেয়। ফাংশনটি 1 প্রদান করে যদি অন্যথায় 0 খুঁজে পাওয়া যায়।

উদাহরণ

#include <iostream.h>"
using namespace std;
int is_pandigital(long long number, int base);
int is_zeroless_pandigital(long long number, int base);
int check_number(long long number, int base);
int main(){
   long long number;
   int base;
   cin>>"Enter a number";
   cout<<number;
   cin>>"Enter Base";
   cout<<base;
   if(base < 2 || base > 10){
      return 1;
   }
   if(check_number(number, base)){
      if(is_pandigital(number, base)){
         cout<<number<<""<<base;
      }
      else{
         cout<< number<< "is not a pandigital number in base"<<base;
      }
      if(is_zeroless_pandigital(number, base)){
         cout<<number<< "is a zeroless pandigital number in base"<<base;
      }
      else{
         cout<<number<< "is not a zeroless pandigital number in base" <<base;
      }
   }
   else{
      cout<<number<< "is not a valid number in base"<<base;
   }
   return 0;
}
int is_pandigital(long long number, int base){
   /* define an array to store the count of all digits */
   int digits[10], i;
   memset(digits, 0, sizeof(int)*10);
   /* for every digit in number, then increment count by one */
   while(number > 0){
      int digit = number % 10;
      ++digits[digit];
      number /= 10;
   }
   /* iterate over all the digits to see if there's an empty one, if so return false */
   for(i = 0; i < base; ++i)
      if(digits[i] == 0)
         return 0;
   /* if no empty digit found, return true */
   return 1;
}
int is_zeroless_pandigital(long long number, int base){
   /* define an array to store the count of all digits */
   int digits[10], i;
   memset(digits, 0, sizeof(int)*10);
   /* for every digit in number, increment count by one */
   while(number > 0){
      int digit = number % 10;
      if(digit == 0) return 0;
         ++digits[digit];
      number /= 10;
   }
   /* iterate over digits to see if there's an empty one, if so return false */
   for(i = 1; i < base; ++i)
   if(digits[i] == 0)
      return 0;
   /* if no empty digit found, return true */
   return 1;
}
/* This function checks if given number is valid in the given base */
int check_number(long long number, int base){
   while(number > 0){
      int digit = number % 10;
      if(digit > base - 1) return 0;
         number /= 10;
   }
   return 1;
}

আউটপুট

উপরের কোডটি চালানোর ফলে নিম্নলিখিত আউটপুট −

উৎপন্ন হবে
Enter a number: 45
Enter base(min:2 to max-10):10
45 is not a valid number.

  1. N-এর ভিত্তি B প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে

  2. বেস 16 N এর প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে

  3. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন