Feedback

VB - Pandigitale Zahlen

Veröffentlicht von am 13.01.2011
(0 Bewertungen)
Diese Funktion prüft die übergebene Zahl auf Pandigitalität in Basis p.

Eine Zahl ist pandigital, wenn sie - wahlweise mit oder ohne 0 - alle Ziffern 1 bis p jeweils einmalig enthält.

Häufig ist in der Netzliteratur nur bei Verwendung aller Ziffern 0 bis 9 Rede davon; mit diesem Snippet lässt sich die Pandigitalität gut beschränken bzw. erweitern.

Eine in Basis p pand. Zahl ist zugleich eine Permutation der Zusammensetzung aller Ziffern 0/1 bis p.
Function is_pand(ByVal n As Integer, ByVal p As Byte, _
                 Optional ByVal incl0 As Boolean = False) As Boolean
    If CStr(n).Length + CByte(incl0) <> p Then Return False
    Dim d As New List(Of Byte)

    For i As Byte = CByte(incl0) To p
        Dim m As Byte = n Mod 10
        If d.Contains(m) Then Return False Else d.Add(m)
        n \= 10
    Next

    Return True
End Function

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!