Feedback

VB - Ganzzahlige Wurzel

Veröffentlicht von am 3/7/2011
(0 Bewertungen)
Diese Funktion ermittelt jene Ganzzahl, welche kleiner oder gleich der Wurzel der übergebenen Zahl n ist. Beispiel:

isr(38) = 6, da gilt: 6² = 36 < 38 und 7² = 49 > 36
isr(121) = 11, da gilt: 11² = 121
Function isr(ByVal n As Integer) As Integer
    Dim res As Integer = 0, l As Integer = 1073741824 '= 2^30
    While l > n
        l >>= 2
    End While

    While l
        If n >= res + l Then
            n -= res + l
            res += l << 1
        End If
 
       res >>= 1
        l >>= 2
    End While

    Return res
End Function

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!