Sprache: VB
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
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
Alte URL:
/snippet/ganzzahlige-wurzel/1503