Factorial de un Número en C# (Consola)

El factorial de un número se obtiene de multiplicar un número por todos los números que le preceden, empezando desde uno. El factorial suele representarse de la forma n!, siendo n el número al que se le calculará el factorial.

Así, el factorial de n se representa de la siguiente manera: n!: 1x2x3x4.....xn.

Si, por ejemplo, queremos calcular 5!, en pantalla se deberá arrojar como resultado lo siguiente:

5!: 1x2x3x4x5 = 120

El siguiente código escrito en C# es una aplicación de consola que nos pide un valor numérico entero y calcula su factorial.


static void Main(string[] args)
        {
            string factorial; //cadena donde se guardará la cantidad de factoriales
            double resultado; //resultado del factorial a calcular
            int n; //valor del factorial a calcular
            Console.Write("No. del factorial a calcular : ");
            string linea = Console.ReadLine();
            ValidarEntrada(ref linea);
            n = int.Parse(linea);
            CalcularFactorial(n, out factorial, out resultado);
            factorial = factorial.TrimEnd('X');
            Console.WriteLine("\n\n" +n + "!: " + factorial + " = " + "{0:N0}", resultado);
            Console.ReadKey();
        }

        private static void ValidarEntrada(ref string linea)
        {
            while (!Int32.TryParse(linea, out int n))
            {
                Console.WriteLine("\nERROR. El valor ingresado debe ser un valor numérico entero.\n");
                Console.Write("No. del factorial a calcular : ");
                linea = Console.ReadLine();
            }
        }

        private static void CalcularFactorial(int n, out string factorial, out double resultado)
        {
            factorial = string.Empty;
            resultado = 1;
            for (int i = 1; i <=n; i++)
            {
                factorial += i + "X";
                resultado *= i;
            }
        }

Como aprendimos en una entrada anterior, toda entrada de datos por teclado debe validarse, por lo que este código no solo calcula el factorial de un número, sino que valida que la información que se ingresa por teclado sea, en efecto, un valor numérico.

El código de la aplicación para .Net lo puedes descargar de aquí.

No hay comentarios:

Publicar un comentario