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.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.