Foro de elhacker.net

Programación => .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
  1. static void Main(string[] args)
  2.        {
  3.            int n;
  4.            Console.Write("Ingrese el Termino:");
  5.            n = int.Parse(Console.ReadLine());
  6.            Console.WriteLine("El Termino {0} es:{1}", n, fibo(n));
  7.            Console.ReadLine();
  8.        }
  9.        static int fibo(int n)
  10.        {
  11.            int fib;
  12.            if (n <= 2)
  13.                fib = n - 1;
  14.            else
  15.                fib = fibo(n - 1) + fibo(n - 2);
  16.            return fib;
  17.        }


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
  1. static void Main(string[] args)
  2.        {
  3.            //   0 1 2 3 4 5 6   7  8  9 10
  4.            //   1,1,2,3,5,8,13,21,34,55,89
  5.            int n;
  6.            int suma = 0, cont = 0;
  7.            Console.Write("Ingrese termino de la succesion: ");
  8.            n = int.Parse(Console.ReadLine());
  9.            Console.WriteLine();
  10.  
  11.            do
  12.            {
  13.                suma += Fibonacci(n - cont) + Fibonacci(n - (cont + 1));
  14.                cont++;
  15.  
  16.            } while (cont < n);
  17.  
  18.            Console.WriteLine("La suma es {0} ", suma);
  19.  
  20.  
  21.            Console.ReadKey();
  22.        }
  23.  
  24.        static int Fibonacci(int n)
  25.        {
  26.            if (n < 3)
  27.                return 1;
  28.  
  29.            return Fibonacci(n - 1) + Fibonacci(n - 2);
  30.        }
  31.  


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