কম্পিউটার টিউটোরিয়াল

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

প্যান্ডিজিটাল নাম্বার — গণিতে, একটি প্যান্ডিজিটাল নাম্বার হল এমন একটি পূর্ণসংখ্যা যেটি একটি নির্দিষ্ট বেসে তার সগুনফলকে প্রতিটি ডিজিট কমপক্ষে একবার ব্যবহার করে তৈরি হয়।

উদাহরণস্বরূপ, ১২৪৫৬৭৮ একটি প্যান্ডিজিটাল নাম্বার।

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

  • সংখ্যা এবং বেস ইনপুট নিন।
  • বেস ২ থেকে ১০ এর মধ্যে কিনা চেক করুন।
  • is_pandigital(long long n, int base) ফাংশন দিয়ে সব ডিজিটের ফ্রিকোয়েন্সি গণনা করুন।
  • বেসের অধীনে সব ডিজিট কমপক্ষে একবার আছে কিনা যাচাই করুন।
  • is_zeroless_pandigital ফাংশন দিয়ে ০ বাদে প্যান্ডিজিটাল চেক করুন।
  • check_number ফাংশন দিয়ে সংখ্যা বেসে বৈধ কিনা যাচাই করুন।

উদাহরণ

#include <iostream>
using namespace std;

int is_pandigital(long long number, int base) {
    int digits[10] = {0};
    while (number > 0) {
        int digit = number % 10;
        ++digits[digit];
        number /= 10;
    }
    for (int i = 0; i < base; ++i)
        if (digits[i] == 0) return 0;
    return 1;
}

int is_zeroless_pandigital(long long number, int base) {
    int digits[10] = {0};
    while (number > 0) {
        int digit = number % 10;
        if (digit == 0) return 0;
        ++digits[digit];
        number /= 10;
    }
    for (int i = 1; i < base; ++i)
        if (digits[i] == 0) return 0;
    return 1;
}

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;
}

int main() {
    long long number; int base;
    cin >> number >> base;
    if (base < 2 || base > 10) return 1;
    if (check_number(number, base)) {
        if (is_pandigital(number, base))
            cout << number << " is pandigital in base " << base;
        else
            cout << number << " is not pandigital in base " << base;
    }
    return 0;
}

আউটপুট

Enter a number: 45
Enter base (min:2 to max-10): 10
45 is not a valid number in base 10
  1. C++ দিয়ে B বেসে N!-এর末尾 শূন্যের সংখ্যা বের করা

  2. C++ দিয়ে বেস ১৬-এ N!-এর শেষ শূন্যের সংখ্যা বের করা

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

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