Let's say, we have a number as N=123456789
If we sum them the result will be 1+2+3+4+5+6+7+8+9 =45 . If we further sum them it will be 4+5 = 9, which is a single digit.
How can we do so? The below is the program that will help us
Imports System
Namespace ConsoleApplication1
Class Program
Private Shared Sub Main(args As String())
Console.WriteLine(FindSingleDigit(123456789))
Console.ReadKey()
End Sub
Public Shared Function FindSingleDigit(N As Integer) As Integer
Dim sum = 0
While N <> 0
sum = sum + (N Mod 10)
N = N/ 10
End While
Return If(sum >= 10, FindSingleDigit(sum), sum)
End Function
End Class
End Namespace
Let us understand the program first
While N <> 0
sum = sum + (N Mod 10)
N = N / 10
End While
The loop continues till the value of "N" becomes zero and it gives the total sum of the individual digits. Then it comes out of the loop. Next we perform a checking if the sum obtained is greater than or equals to 10 which is a two digit. In that case , then program makes a recursive call. If it is a single digit, then that value gets return.
Let us analyze the program with out example.
Pass 1: sum = 45
Pass 2: sum = 9