Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Choclito en 7 Julio 2011, 03:32 AM

Título: Recursividad
Publicado por: Choclito en 7 Julio 2011, 03:32 AM
Hola a todos estaba haciendo la serie fibonacci de forma recursiva  y normal me calculo el enesimo termino , pero ahora quiero hacer la suma de la serie ejemplo
n = 5 la suma es =  7 , pero quise hacerlo con este mismo codigo  y queria ver si se podia o cual seria una forma mas facil para desaroollarla.

// serie finonacci 0,1,1,2,3,5
Código (csharp) [Seleccionar]
static void Main(string[] args)
        {
            int n;
            Console.Write("Ingrese el Termino:");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("El Termino {0} es:{1}", n, fibo(n));
            Console.ReadLine();
        }
        static int fibo(int n)
        {
            int fib;
            if (n <= 2)
                fib = n - 1;
            else
                fib = fibo(n - 1) + fibo(n - 2);
            return fib;
        }
Título: Re: Recursividad
Publicado por: Edu en 7 Julio 2011, 05:03 AM
No entiendo bien que quieres hacer, deja mas ejemplos de lo que quieres que ingrese el usuario y lo que te tendra que devolver la funcion
Título: Re: Recursividad
Publicado por: seba123neo en 7 Julio 2011, 07:31 AM
aca tenes un ejemplo simple recursivo:

Method Recursion (http://www.java2s.com/Tutorial/CSharp/0140__Class/fibonacciinC.htm)
Título: Re: Recursividad
Publicado por: Choclito en 7 Julio 2011, 19:32 PM
hola ese algoritmo de ahi que puse me hace para ubicar el enesimo termino de la sucesion , pero ahora yo quiero modificar ese mismo codigo pero para que me calcule la sumatoria ejemplo:
sea la sucession:0,1,1,2,3,5,8...etc
si el usuario ingreso 5
el resultado debe ser la suma de los 5 primero numeros : 0+1+1+2+3 = 7
Título: Re: Recursividad
Publicado por: Edu en 7 Julio 2011, 20:44 PM
Fijate si esto te sirve y mira como lo hice claro:

Código (csharp) [Seleccionar]

static void Main(string[] args)
        {
            //   0 1 2 3 4 5 6   7  8  9 10
            //   1,1,2,3,5,8,13,21,34,55,89
            int n;
            int suma = 0, cont = 0;
            Console.Write("Ingrese termino de la succesion: ");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine();

            do
            {
                suma += Fibonacci(n - cont) + Fibonacci(n - (cont + 1));
                cont++;

            } while (cont < n);

            Console.WriteLine("La suma es {0} ", suma);


            Console.ReadKey();
        }

        static int Fibonacci(int n)
        {
            if (n < 3)
                return 1;

            return Fibonacci(n - 1) + Fibonacci(n - 2);
        }
Título: Re: Recursividad
Publicado por: Choclito en 7 Julio 2011, 21:15 PM
hola si te lo entendi esta interesante muchas gracias,
pero lo que yo quiero es hacerlo mediante forma recursiva sin usar estructuras repetitivas nada asi , solo con llamar a la funcion recursiva  k me lo calcule , porque este algoritmo lo quiero llevar a prolog y veo que en prolog no puedo usar repetitivas jejej  y muchas gracias eso se va a mi guia de ejercicios porque esta muy bueno :)
Título: Re: Recursividad
Publicado por: Edu en 7 Julio 2011, 22:02 PM
Usando solo una funciona y q sea recursiva no he podido hacerlo, pero seguire intentando
Título: Re: Recursividad
Publicado por: Choclito en 8 Julio 2011, 06:44 AM
yo igual gana ganacha jeje :)