Visual Basic .NET Language
Recursion
Buscar..
Calcular el número de Fibonacci
Visual Basic.NET, como la mayoría de los lenguajes, permite la recursión, un proceso mediante el cual una función se llama a sí misma bajo ciertas condiciones.
Aquí hay una función básica en Visual Basic .NET para calcular los números de Fibonacci .
''' <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
Esta función funciona al verificar primero si la función se ha llamado con el parámetro n
igual a 1
o 2
. Por definición, los dos primeros valores en la secuencia de Fibonacci son 1 y 1, por lo que no es necesario realizar ningún cálculo adicional para determinar esto. Si n
es mayor que 2, no podemos buscar el valor asociado tan fácilmente, pero sabemos que cualquier número de Fibonacci es igual a la suma de los dos números anteriores, por lo que los solicitamos por medio de la recursión (llamando a nuestra propia función de Fibonacci). Dado que las llamadas recursivas sucesivas son llamadas con números cada vez más pequeños a través de decrementos de -1 y -2, sabemos que eventualmente alcanzarán números menores a 2. Una vez que se alcanzan esas condiciones (llamadas casos base ), la pila se desenrolla y nosotros Consigue nuestro resultado final.