How to get the square root rounded down to the nearest integer of a positive integer in VB.NET

1 Answer

0 votes
Imports System

Public Class Program
    Public Shared Function mySqrt(ByVal n As Integer) As Integer
        If n = 0 OrElse n = 1 Then
            Return n
        End If

        Dim start As Integer = 1
        Dim _end As Integer = n

        While start <= _end
            Dim mid As Integer = start + (_end - start) / 2
            If CLng(mid) * mid > CLng(n) Then
                _end = mid - 1
            ElseIf mid * mid = n Then
                Return mid
            Else
                start = mid + 1
            End If
        End While

        Return _end
    End Function

    Public Shared Sub Main(ByVal args As String())
        Console.WriteLine(mySqrt(240000)) ' 489.897
    End Sub
End Class

 
 
 
' run:
'
' 489
'

 



answered May 12, 2024 by avibootz
edited May 12, 2024 by avibootz

Related questions

...