using System;

namespace Practica7Tema3
{
    public class Practica7Tema3
    {
        /**
         * Método iterativo (con for) para calcular factorial.
         * Recorre desde n-1 hasta 1 multiplicando y acumulando.
         */
        public static int factorialIterativo(int n)
        {
            int facto = n; // Inicializar número
            for (int i = n - 1; i >= 1; i--) // Ciclo decremento
            {
                facto = facto * i; // Multiplicación acumulada
            }
            return facto; // Devuelve resultado
        }

        /**
         * Método recursivo para calcular factorial.
         * Caso base: factorial(0) = 1
         * Caso recursivo: n! = n * factorial(n-1)
         */
        public static long factorialRecursivo(int numero)
        {
            if (numero < 0) // Validar no negativos
            {
                Console.WriteLine("No existen factoriales de numeros negativos (n<0). ");
                return -1; // Control error
            }
            if (numero == 0) return 1; // Caso base

            // Caso recursivo: método n-1
            return numero * factorialRecursivo(numero - 1);
        }

        public static void Main(string[] args)
        {
            Console.WriteLine(">>> Vamos a calcular <<<");
            Console.Write("Ingresame un numero y te calculo su factorial? ");
            int numero = int.Parse(Console.ReadLine());

            // Factorial recursivo
            long facRecursivo = factorialRecursivo(numero);

            // Factorial iterativo
            int facIterativo = factorialIterativo(numero);

            // Mostrar resultados
            Console.WriteLine("\nFactorial recursivo de " + numero + " es ---> :" + facRecursivo);
            Console.WriteLine("Factorial iterativo de " + numero + " es ---> :" + facIterativo);
        }
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: