Ingeniero de Sistemas
Como la mayor parte de los lenguajes de programación C# permite el uso recursivo de métodos.
Un método puede hacer una llamada a sí mismo directa oindirectamente, lo cual ofrece una solución para ciertos tipos de problemas especialmente complejos ya que permiten mayor facilidad al manipular estructuras de datos más complejas, como listasy árboles.
Los métodos en C# pueden ser mutuamente recursivos: Por ejemplo, puede darse una situación en la que un método A llame a un método B, y el método B llame al método A.Ejemplo:
class A
{
int x;
public virtual void PrintFields() {
Console.WriteLine("x = {0}", x);
}
}
class B: A
{
int y;
public override void PrintFields() {
base.PrintFields();Console.WriteLine("y = {0}", y);
}
}
La llamada a base.PrintFields() en B invoca el metodo PrintFields() declarado en A.
Un acceso-base deshabilita el mecanismo de llamada virtualy simplemente tretas el metodo base como un metodo no virtual
Teniendo la llamada en B así:((A)this).PrintFields(), deberá llamar recursivamente al metodo PrintFields() declarado en B,no el declarado en A, dado que PrintFields() es virtual y el tipo run-time de ((A)this) es B.
La serie de Fibonacci aparece con cierta frecuencia en matemáticas y biología (un ejemplode esto es el índice de reproducción y la población de bacterias). El término k de esta serie tiene el valor 1 si k =1 ó k=2, y en los demás casos es igual a la suma de los dos númerosque le preceden en la serie; es decir, el valor del término k para k > 2 se obtiene a partir de:(k-1)+(k -2) los dos valores anteriores de la serie.
El hecho de que la definición delmétodo incluya al propio método sugiere su recursividad.
Un Ejemplo para solución de este problema podría ser como sigue:
public static ulong SerieFibonacci(ulong k)
{
if (k
Regístrate para leer el documento completo.