12,290,051 members (68,909 online)
Tip/Trick
alternative version

8.8K views
2 bookmarked
Posted

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

, 3 Jul 2012 CPOL
 Rate this:

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.

## Share

No Biography provided

## You may also be interested in...

 First Prev Next
 [My vote of 2] Why StringBuilder? Why recursion? Matt T Heffron5-Jul-12 14:40 Matt T Heffron 5-Jul-12 14:40
 Re: [My vote of 2] Why StringBuilder? Why recursion? Abdul Quader Mamun13-Aug-12 0:05 Abdul Quader Mamun 13-Aug-12 0:05
 Re: [My vote of 2] Why StringBuilder? Why recursion? Matt T Heffron14-Aug-12 6:41 Matt T Heffron 14-Aug-12 6:41
 But to what Lengths will he go to fix it Abdul Quader Mamun3-Jul-12 17:34 Abdul Quader Mamun 3-Jul-12 17:34
 But to what Lengths will he go to fix it Abdul Quader Mamun3-Jul-12 17:33 Abdul Quader Mamun 3-Jul-12 17:33
 Last Visit: 31-Dec-99 18:00     Last Update: 24-May-16 0:07 Refresh 1