Visual Basic .NET Language
Rekurencja
Szukaj…
Oblicz n-tą liczbę Fibonacciego
Visual Basic.NET, podobnie jak większość języków, zezwala na rekurencję, proces, w którym funkcja wywołuje się pod pewnymi warunkami.
Oto podstawowa funkcja w Visual Basic .NET do obliczania liczb Fibonacciego .
''' <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
Ta funkcja działa, sprawdzając najpierw, czy funkcja została wywołana z parametrem n
równym 1
lub 2
. Z definicji dwie pierwsze wartości w sekwencji Fibonacciego to 1 i 1, więc żadne dalsze obliczenia nie są konieczne do ustalenia tego. Jeśli n
jest większe niż 2, nie możemy tak łatwo wyszukać powiązanej wartości, ale wiemy, że każda taka liczba Fibonacciego jest równa sumie dwóch poprzednich liczb, więc żądamy ich poprzez rekurencję (wywoływanie własnej funkcji Fibonacciego). Ponieważ kolejne wywołania rekurencyjne są wywoływane z coraz mniejszymi liczbami poprzez zmniejszenie wartości -1 i -2, wiemy, że ostatecznie osiągną liczby mniejsze niż 2. Po osiągnięciu tych warunków (zwanych przypadkami podstawowymi ) stos się rozwija i uzyskaj nasz końcowy wynik.