[ 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 (+84)

¿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 (+84)

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.)