• Sábado 14 de Diciembre de 2024, 07:40

Autor Tema:  Re: Con respecto a la lista de correo  (Leído 2241 veces)

MisterChip

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Con respecto a la lista de correo
« en: Martes 26 de Marzo de 2002, 15:18 »
0
que es la Recursividad en C, algo sobre fibonacci.
Alguien tiene ejemplos en codigo fuente?

bench

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Con respecto a la lista de correo
« Respuesta #1 en: Martes 26 de Marzo de 2002, 19:05 »
0
Una Funcion Es Recursiva Cuando se Llama a
si Misma dentro del Cuerpo de la Funcion:

Por Ejemplo:

int Factorial(int X)
 {
  int Retorno = X * Factorial(X-1);
  return Retorno
  }

La Ventaja de Un Algoritmo Recursivo, Es La Facilidad Con Que Puede Desarrollarse. En Contra de Lo Complicado Que Puede Ser Resolver el Mismo Problema Con Un Algoritmo iterativo es Decir Que No Se Llama a si Mismo Para Resolver el Problema.

La Mayor Desventaja de Un Algoritmo Recursivo es la Gran Cantidad de Memoria que Requiere Para Ejecutarse.

En El Ejemplo;

Si Prcesamos:
4!
Resul_Total =
 Factorial(4)
  {
   int Resultado = 4*Factorial(4-1);
   return Resultado;
   }

SE Ejecutara:
FACTORIAL(4)
4*FACTORIAL(4-1) /* 1 INT */
3*FACTORIAL(4-2) /* 2 INT */
2*FACTORIAL(4-3) /* 3 INT */
1*FACTORIAL(4-4) /* 4 INT */

Es Decir Se Necesitaran 4 Variables tipo int Para Resolver el Problema. A si que Imaginate la Necesidad de Memoria que se Requiere Para Resolver mediante este algoritmo: el factorial de Un Nro: Muy Grande.

Espero Te Sirva La Informacion

xtreme

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Con respecto a la lista de correo
« Respuesta #2 en: Domingo 7 de Abril de 2002, 05:15 »
0
Como ya dijeron anteriormente  la recursion no es mas que una funcion se llame a si misma, aunque no es muy recomendable usar la recursion ya que tardan y consumen la memoria de la maquina

Este programa esta hecho en C++

#include <iostream.h>

//Definicion recursiva de la funcion fibonacci
long fibonacci( long n )
{
      if( n == 0 || n == 1 )
           return n;
      else
           return fibonacci( n - 1 ) + fibonacci( n - 2 );
}


void main()
{
      long result, number;
      cout << "Teclee un numero entero: ";
      cin >> number;
      result = fibonacci ( number );
      cout << "Fibonacci( " << number << ") = " << result << endl;
}

Espero que te sirva y si era tu tarea pues ya te ayude:o pero recuerda que asi no aprendes es mejor intentar las cosas bueno suerte !!!!!!

:P