Programacion con Funcion Recursiva Ayuda

Iniciado por DRinoa, 11 Octubre 2015, 02:16 AM

0 Miembros y 1 Visitante están viendo este tema.

DRinoa

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++

Seyro97

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
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

user-marcos

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 (cpp) [Seleccionar]

#include <iostream>
using namespace std;

int factorial(int n)
{
  if(n != 1 and n > 1)
   return n  * factorial(n-1);
   else return n;
}

int main()
{
  cout << factorial(5);
}


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