Elabore un algoritmo que calcule el factorial de un número utilizando únicamente una función recursiva.

Bien vamos a entender esto: supongamos que queremos calcular el factorial de 5 que es igual 120, si nosotros vamos a utilizar una función recursiva, esto es lo que hará el programa gráficamente al momento de ejecutar:

Primero el main se ejecuta, pedimos el numero y lo guardamos en una variable. Finalmente en el cout se llama al metodo factorial() y se le asigna como parametro el numero que ingresamos (en este caso 5). El metodo factorial(5) se llamara así misma 5 veces hasta que su parametro (5) llegue a 1, cuando ese parametro llegue a 1 entonces retornara el valor de 1, porque el factorial de 1 es 1. Ahora como ya sabemos que ha llegado a su límite y ya sabemos el valor de factorial(1) = 1, ahora la función calcula el factorial en 2, 3, 4 y 5 veamos esto gráficamente:
factorial(2) = 2 * factorial(1) = 2

factorial(3) = 3 * factorial(2) = 6

factorial(4) = 4 * factorial(3) = 6

factorial(5) = 5 * factorial(4) = 120

Se muestra el resultado en pantalla con el cout:


Espero que esta explicación haya sido de ayuda para entender la recursividad, aqui esta el codigo:
#include <iostream>
// se incluye la clase Recursividad para despues llamar a sus metodos
#include "Recursividad.h"
using namespace std;
int main(void)
{
// se crea un objeto de la clase Recursividad (Instanciaciación)
Recursividad *obj = new Recursividad();
// declaramos la variable num de tipo entero
int num;
// pedimos al usuario que digite el número
cout << "Digite numero: ";
// guardamos el número en la variable num
cin >> num;
// mostramos el factorial del número llamando al metodo factorial() y le asignamos como parametro la variable "num"
cout << "El factorial de " << num << " es: " << obj->factorial(num) << endl;
}