// A pandigital number is an integer that contains each digit from 0 to 9
// at least once, with the condition that the leading digit must be nonzero
// for example, 1023456987 is a pandigital number
#include <iostream>
#include <string>
#include <algorithm>
bool isPandigitalRange(long long num, int start = 1, int end = 9) {
std::string str = std::to_string(num);
// Build the expected digit string
std::string expected;
for (int i = start; i <= end; ++i) {
expected += char('0' + i);
}
// Sort digits of the number
std::string sorted = str;
std::sort(sorted.begin(), sorted.end());
return sorted == expected;
}
int main() {
std::cout << std::boolalpha;
std::cout << isPandigitalRange(123456789) << std::endl;
std::cout << isPandigitalRange(1023456789, 0, 9) << std::endl;
std::cout << isPandigitalRange(987654321) << std::endl;
std::cout << isPandigitalRange(123456780) << std::endl;
std::cout << isPandigitalRange(123456780) << std::endl;
std::cout << isPandigitalRange(123455789) << std::endl;
std::cout << isPandigitalRange(12345) << std::endl;
}
/*
run:
true
true
true
false
false
false
false
*/