Imports System
Module Program
''' <summary>
''' Finds the smallest and largest digits in a number.
''' </summary>
''' <param name="number">Input number</param>
''' <param name="minDigit">Smallest digit found</param>
''' <param name="maxDigit">Largest digit found</param>
Sub FindMinMaxDigits(ByVal number As Integer,
ByRef minDigit As Integer,
ByRef maxDigit As Integer)
' Handle negative numbers
number = Math.Abs(number)
' Special case for 0
If number = 0 Then
minDigit = 0
maxDigit = 0
Exit Sub
End If
minDigit = 9
maxDigit = 0
While number > 0
' Extract the last digit
Dim digit As Integer = number Mod 10
' Update smallest digit
If digit < minDigit Then
minDigit = digit
End If
' Update largest digit
If digit > maxDigit Then
maxDigit = digit
End If
' Remove the last digit
number \= 10
End While
End Sub
Sub Main()
Dim number As Integer = 839516
Dim minDigit As Integer
Dim maxDigit As Integer
FindMinMaxDigits(number, minDigit, maxDigit)
Console.WriteLine("Number: " & number)
Console.WriteLine("Smallest digit: " & minDigit)
Console.WriteLine("Largest digit: " & maxDigit)
End Sub
End Module
' run:
'
' Number: 839516
' Smallest digit: 1
' Largest digit: 9
'