Here is a recursive procedure. This procedure will resolve the following algorithm using StringBuilder.
- Take any natural number n (excluding 0). If n is even, halve it (n / 2), otherwise multiply it by 3 and add 1 to obtain 3n + 1. The conjecture is that for all numbers this process converges to 1.
Public Sub RecursiveCall(ByVal num As Integer, ByRef result As StringBuilder)
If num <= 0 Then
Exit Sub
End If
If result.Length = 0 Then
result.AppendFormat("{0} ", num)
End If
If num <> 1 Then
If num Mod 2 = 0 Then
num = num / 2
Else
num = 3 * num + 1
End If
RecursiveCall(num, result.AppendFormat("{0} ", num))
End If
Exit Sub
End Sub
call the recursive procedure.
Dim result As StringBuilder = New StringBuilder()
Dim intInput As Integer = 10
RecursiveCall(intInput, result)
Alternatively, we can solve this issue
Dim strSeries As String=String.Empty
While num <> 1
If num Mod 2 = 0 Then
num = num / 2
Else
num = 3 * num + 1
End If
strSeries =strSeries + num.ToString()
End While
But in this trick recursive procedure is used which the most powerful way to solve this issue and using Stringbuilder for efficient programming and improve performance.