65.9K
CodeProject is changing. Read more.
Home

How to use StringBuilder in recursive procedure in VB.NET.

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (2 votes)

Jul 3, 2012

CPOL
viewsIcon

18726

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.