Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

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

0.00/5 (No votes)
3 Jul 2012 1  

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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here