Visual Basic .NET Language
Rekursion
Suche…
N-te Fibonacci-Zahl berechnen
Visual Basic.NET, wie die meisten Sprachen erlaubt Rekursion, ein Verfahren , mit dem eine Funktion selbst unter bestimmten Bedingungen fordert.
Hier ist eine grundlegende Funktion in Visual Basic .NET zum Berechnen von Fibonacci- Zahlen.
''' <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
Diese Funktion überprüft zunächst, ob die Funktion mit dem Parameter n
gleich 1
oder 2
aufgerufen wurde. Definitionsgemäß sind die ersten beiden Werte in der Fibonacci-Sequenz 1 und 1, daher sind keine weiteren Berechnungen erforderlich, um dies zu bestimmen. Wenn n
größer als 2 ist, können wir den zugehörigen Wert nicht so leicht nachschlagen. Wir wissen jedoch, dass eine solche Fibonacci-Zahl gleich der Summe der vorherigen beiden Zahlen ist. Daher fordern wir diese über Rekursion (Aufruf unserer eigenen Fibonacci-Funktion) an. Da aufeinanderfolgende rekursive Aufrufe mit immer kleineren Zahlen über Verringerungen von -1 und -2 aufgerufen, wissen wir , dass irgendwann werden sie Zahlen erreichen , die als 2. Sobald diese Bedingungen kleiner sind ( so genannte Basis Fälle) erreicht werden, wickelt sich der Stapel und wir Holen Sie sich unser Endergebnis.