Visual Basic .NET Language
Herhaling
Zoeken…
Bereken nde Fibonacci-nummer
Visual Basic.NET staat, zoals de meeste talen, recursie toe, een proces waarbij een functie zichzelf onder bepaalde voorwaarden aanroept.
Hier is een basisfunctie in Visual Basic .NET om Fibonacci- nummers te berekenen.
''' <summary>
''' Gets the n'th Fibonacci number
''' </summary>
''' <param name="n">The 1-indexed ordinal number of the Fibonacci sequence that you wish to receive. Precondition: Must be greater than or equal to 1.</param>
''' <returns>The nth Fibonacci number. Throws an exception if a precondition is violated.</returns>
Public Shared Function Fibonacci(ByVal n as Integer) as Integer
If n<1
Throw New ArgumentOutOfRangeException("n must be greater than or equal to one.")
End If
If (n=1) or (n=2)
''Base case. The first two Fibonacci numbers (n=1 and n=2) are both 1, by definition.
Return 1
End If
''Recursive case.
''Get the two previous Fibonacci numbers via recursion, add them together, and return the result.
Return Fibonacci(n-1) + Fibonacci(n-2)
End Function
Deze functie werkt door eerst te controleren of de functie is opgeroepen met de parameter n
gelijk aan 1
of 2
. Per definitie zijn de eerste twee waarden in de Fibonacci-reeks 1 en 1, dus is geen verdere berekening nodig om dit te bepalen. Als n
groter is dan 2, kunnen we de bijbehorende waarde niet zo gemakkelijk opzoeken, maar we weten dat een dergelijk Fibonacci-nummer gelijk is aan de som van de voorgaande twee nummers, dus we vragen deze aan via recursie (onze eigen Fibonacci-functie aanroepen). Omdat opeenvolgende recursieve oproepen met kleinere en kleinere nummers worden geroepen via afnames van -1 en -2, weten we dat ze uiteindelijk nummers zullen bereiken die kleiner zijn dan 2. Zodra die voorwaarden ( basisgevallen genoemd) worden bereikt, wordt de stapel afgewikkeld en krijg ons eindresultaat.