How to check if a number is pandigital in VB.NET

1 Answer

0 votes
' 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 

Imports System
Imports System.Linq

Module Program

    Function IsPandigitalRange(num As Long, Optional start As Integer = 1, Optional ending As Integer = 9) As Boolean
        Dim str As String = num.ToString()

        ' Build the expected digit string
        Dim expected As String = String.Concat(Enumerable.Range(start, ending - start + 1))

        ' Sort the digits of the number
        Dim digits As Char() = str.ToCharArray()
        Array.Sort(digits)
        Dim sorted As String = New String(digits)

        Return sorted = expected
    End Function

    Sub Main()
        Console.WriteLine(IsPandigitalRange(123456789))          
        Console.WriteLine(IsPandigitalRange(1023456789, 0, 9))   
        Console.WriteLine(IsPandigitalRange(987654321))          
        Console.WriteLine(IsPandigitalRange(123456780))          
        Console.WriteLine(IsPandigitalRange(12345))              
    End Sub

End Module



'
' run:
'
' True
' True
' True
' False
' False
'


 



answered Dec 30, 2023 by avibootz
edited Feb 25 by avibootz
...