Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DRinoa en 11 Octubre 2015, 02:16 am



Título: Programacion con Funcion Recursiva Ayuda
Publicado por: DRinoa en 11 Octubre 2015, 02:16 am
Buenas tardes,estoy aprendiendo a programar en c,así que mi nivel es muy basico,me piden hacer está recurrencia con una funcion cursiva pero no me sale:

An+1=3An
A1= 1
para n<=10

ésto es lo que he estado haciendo pero se que no está bien,me pueden ayudar por favor

int factorial (int n) {
   
   while (n!=1){
      return n*factorial(n+3);
      
   }
   return 1;
   
   
   }

Gracias :) Por favor me podrpian explicar para aprender, mucha sgracias!!

p.d. Uso Dev c++


Título: Re: Programacion con Funcion Recursiva Ayuda
Publicado por: Seyro97 en 11 Octubre 2015, 11:17 am
El factorial multiplica el número del factorial, por el anterior, y por el anterior hasta llegar a uno... Entonces, ¿por qué multiplicas el número por los tres siguientes: n*factorial(n+3)?Es decir, tendrías que escribir n*factorial(n-1), para multiplicar por el anterior


Título: Re: Programacion con Funcion Recursiva Ayuda
Publicado por: user-marcos en 11 Octubre 2015, 12:53 pm
Recursividad es una función que se llama así misma y tiene que tener una condición de parada, un buen ejemplo para entenderlo es calcular el factorial de un número, te pongo un ejemplo:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int factorial(int n)
  5. {
  6.  if(n != 1 and n > 1)
  7.   return n  * factorial(n-1);
  8.   else return n;
  9. }
  10.  
  11. int main()
  12. {
  13.  cout << factorial(5);
  14. }
  15.  

Este tipo de recursión se llama tail recursion,  es "más eficiente"