[ Foro de C# ]

Arreglo llenado por Recursividad

21-Feb-2016 22:01
Alexa Lascurain
3 Respuestas

Buenas tardes:
Tengo una pregunta como puedo llenar un arreglo con la sucesion fibonacci, por medio de recursividad., en C#
De antemano
Muchas gracia


23-Feb-2016 01:09
Nacho Cabanes (+30)

¿Sabes lo que es la sucesión de Fibonacci?  ¿Sabrías escribirla en pantalla?  ¿Sabes guardar datos en arrays?  Si conoces esas tres cosas, debería ser fácil; si no, pregunta lo que no sepas hacer.


23-Feb-2016 03:51
Alexa Lascurain


 
    class Program
    {
        static void Main(string[] args)
        {
            int N;
 
            Console.WriteLine("Introduce el valor de n ");
            N = int.Parse(Console.ReadLine());
 
            int[] numSf = new int[N];
 
            Console.WriteLine("\n\n\nSucesión de Fibonacci");
            for (int i = 1; i<=N; i++)
            {
                int fib = Fibonacci(i);
                Console.Write(" " + fib);
            }
 
 
 
            SucesionFibonacci(numSf, N);
 
            //SucesionFibonacci(numsF,n) llamada metodo
            //static void sucesionfibonacci(int[] sf, int N) metodo de sucesion
            Console.WriteLine(" ");
            Impresion(numSf, N);
            //static void Imprime(int[n] num, int N) impresion 
 
 
 
            Console.ReadLine();
        }
 
        static void Impresion(int [] numSf, int N)
        {
            int j;
            for (j = 0; j < N; j++)
            {
                Console.WriteLine(numSf[j] + "");
            }
        }
 
        static void SucesionFibonacci(int[] numSf, int N)
        {
      //Mi duda se encuentra aquí, en como llenar el arreglo sin ciclos, solamente con recursividad.
        }
 
        static int Fibonacci(int N)
        {           
            if (N == 1)
                return 0;
 
            if (N == 2)
                return 1;
 
            return Fibonacci(N - 2) + Fibonacci(N - 1);
        }
    }
}
 


 


27-Feb-2016 23:19
Nacho Cabanes (+30)

En vez de hacer un "for" que vaya desde uno hasta n, necesitas que el caso base de la recursividad sea n=1 y el caso general sea n=N y ceda el control a N-1:

 
static void SucesionFibonacci(int[] numSf, int N) 
{ 
    if (N < 0) return;
 
    dato[N] = Fibonacci(N);
   SucesionFibonacci(numSf, N-1);
} 
 


 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)