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++
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
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:
#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"